Camel K を使用したインテグレーションの開発および管理
Camel K の開発者ガイド
概要
前書き リンクのコピーリンクがクリップボードにコピーされました!
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。これは大規模な取り組みであるため、これらの変更は今後の複数のリリースで段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージをご覧ください。
第1章 Camel K インテグレーションの管理 リンクのコピーリンクがクリップボードにコピーされました!
Camel K コマンドラインまたは開発ツールを使用して、Red Hat Integration - Camel K インテグレーションを管理できます。本章では、コマンドラインで Camel K インテグレーションを管理する方法を説明し、VS Code 開発ツールの使用方法を説明する追加のリソースへのリンクを提供します。
1.1. Camel K インテグレーションの管理 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインで OpenShift クラスターの Camel K インテグレーションを管理するためのさまざまなオプションがあります。ここでは、以下のコマンドを使用する簡単な例を紹介します。
-
kamel get -
kamel describe -
kamel log -
kamel delete
前提条件
- Setting up your Camel K development environment
- Java または YAML DSL で記述された Camel インテグレーションが作成済みである必要があります。
手順
以下の例のように、Camel K Operator が OpenShift クラスターで稼働していることを確認します。
oc get pod
oc get podCopy to Clipboard Copied! Toggle word wrap Toggle overflow NAME READY STATUS RESTARTS AGE camel-k-operator-86b8d94b4-pk7d6 1/1 Running 0 6m28s
NAME READY STATUS RESTARTS AGE camel-k-operator-86b8d94b4-pk7d6 1/1 Running 0 6m28sCopy to Clipboard Copied! Toggle word wrap Toggle overflow kamel runコマンドを入力し、OpenShift のクラウドでインテグレーションを実行します。以下に例を示します。kamel run hello.camelk.yaml
kamel run hello.camelk.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow integration "hello" created
integration "hello" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow kamel getコマンドを入力し、インテグレーションの状態を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAME PHASE KIT hello Building Kit kit-bqatqib5t4kse5vukt40 >>>>>>> fusedoc-4502
NAME PHASE KIT hello Building Kit kit-bqatqib5t4kse5vukt40 >>>>>>> fusedoc-4502Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel describeコマンドを入力し、インテグレーションに関する詳細情報を出力します。<<<<<<< HEAD $ kamel describe it hello ======= kamel describe integration hello
<<<<<<< HEAD $ kamel describe it hello ======= kamel describe integration helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel logコマンドを入力して、ログをstdoutに出力します。kamel log hello
kamel log helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow ... [1] 2021-08-13 14:37:15,860 INFO [info] (Camel (camel-1) thread #0 - timer://yaml) Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello Camel K from yaml] ...
... [1] 2021-08-13 14:37:15,860 INFO [info] (Camel (camel-1) thread #0 - timer://yaml) Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello Camel K from yaml] ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ctrl-Cキーを押して、ターミナルでログインを終了します。 kamel deleteを入力して、OpenShift にデプロイされたインテグレーションを削除します。kamel delete hello
kamel delete helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow Integration hello deleted
Integration hello deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
その他のリソース
- ロギングの詳細は、「Managing Camel K integration logging levels」を参照してください。
- デプロイメントのターンアラウンド時間を短縮するには、「Running Camel K integrations in development mode」を参照してください。
- インテグレーションを管理するための開発ツールの詳細は、Red Hat による Apache Camel K の VS Code ツール を参照してください。
1.2. Camel K インテグレーションのロギングレベルの管理 リンクのコピーリンクがクリップボードにコピーされました!
Camel K は Quarkus Logging メカニズムをインテグレーションのロギングフレームワークとして使用します。実行時にコマンドラインでさまざまなロガーのロギングレベルを設定するには、quarkus.log.category プレフィックスをインテグレーションプロパティーとして指定します。以下に例を示します。
例
--property 'quarkus.log.category."org".level'=DEBUG
--property 'quarkus.log.category."org".level'=DEBUG
プロパティーを一重引用符でエスケープすることが重要です。
手順
kamel runコマンドを入力し、--propertyオプションを使用してログレベルを指定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ctrl-Cキーを押して、ターミナルでログインを終了します。
その他のリソース
- ロギングフレームワークの詳細は、「Configuring logging format」を参照してください。
- ログを表示する開発ツールの詳細は、Red Hat による Apache Camel K の VS Codeツール を参照してください。
第2章 Camel K インテグレーションのモニタリング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Integration - Camel K モニタリングは OpenShift モニタリングシステム に基づいています。本章では、実行時に Red Hat Integration - Camel K インテグレーションを監視するためにオプションを使用する方法について説明します。OpenShift Monitoring の一部としてすでにデプロイされている Prometheus Operator を使用して、独自のアプリケーションを監視することができます。
2.1. OpenShift でのユーザーワークロードモニタリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift 4.3 以降には、OpenShift Monitoring の一部としてすでにデプロイされている組み込みの Prometheus Operator が含まれています。ここでは、OpenShift Monitoring で独自のアプリケーションサービスのモニタリングを有効にする方法について説明します。このオプションを使用すると、個別の Prometheus インスタンスをインストールおよび管理するための追加のオーバーヘッドが発生しません。
前提条件
- Camel K Operator がインストールされている OpenShift クラスターにクラスター管理者としてアクセスできる必要があります。「Installing Camel K」を参照してください。
手順
以下のコマンドを入力して、
cluster-monitoring-configConfigMap オブジェクトがopenshift-monitoring projectに存在するかどうかを確認します。oc -n openshift-monitoring get configmap cluster-monitoring-config
$ oc -n openshift-monitoring get configmap cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-monitoring-configConfigMap がない場合は作成します。oc -n openshift-monitoring create configmap cluster-monitoring-config
$ oc -n openshift-monitoring create configmap cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-monitoring-configConfigMap を編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow data:config.yaml:で、enableUserWorkloadをtrueに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
その他のリソース
2.2. Camel K インテグレーションメトリクスの設定 リンクのコピーリンクがクリップボードにコピーされました!
実行時に Camel K Prometheus トレイトを使用すると、Camel K インテグレーションのモニタリングを自動的に設定できます。これにより、依存関係およびインテグレーション Pod の設定が自動化され、Prometheus によって検出および表示されるメトリクスエンドポイントが公開されます。Camel Quarkus MicroProfile Metrics エクステンション は、OpenMetrics 形式でデフォルトの Camel K メトリクスを自動的に収集および公開します。
前提条件
- OpenShift で、独自のサービスのモニタリングが有効になっている必要があります。「Enabling user workload monitoring in OpenShift」を参照してください。
手順
以下のコマンドを入力して、Prometheus トレイトを有効にして Camel K インテグレーションを実行します。
kamel run myIntegration.java -t prometheus.enabled=true
kamel run myIntegration.java -t prometheus.enabled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、以下のようにインテグレーションプラットフォームを更新すると、Prometheus トレイトを 1 度グローバルに有効にすることができます。
oc patch ip camel-k --type=merge -p '{"spec":{"traits":{"prometheus":{"configuration":{"enabled":true}}}}}'$ oc patch ip camel-k --type=merge -p '{"spec":{"traits":{"prometheus":{"configuration":{"enabled":true}}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Prometheus で Camel K インテグレーションメトリクスのモニタリングを確認します。たとえば、埋め込み Prometheus の場合は、OpenShift 管理者または開発者 Web コンソールで Monitoring > Metrics と選択します。
-
表示する Camel K メトリクスを入力します。たとえば、Administrator コンソールの Insert Metric at Cursor で
application_camel_context_uptime_secondsを入力し、Run Queries をクリックします。 - Add Query をクリックして追加のメトリクスを表示します。
2.3. カスタム Camel K インテグレーションメトリクスの追加 リンクのコピーリンクがクリップボードにコピーされました!
Java コードで Camel MicroProfile Metrics コンポーネントおよびアノテーションを使用すると、カスタムメトリクスを Camel K インテグレーションに追加できます。その後、これらのカスタムメトリクスは Prometheus によって自動的に検出され、表示されます。
ここでは、Camel MicroProfile Metrics アノテーションを Camel K インテグレーションおよびサービス実装コードに追加する例を紹介します。
前提条件
- OpenShift で、独自のサービスのモニタリングが有効になっている必要があります。「Enabling user workload monitoring in OpenShift」を参照してください。
手順
Camel MicroProfile Metrics コンポーネントアノテーションを使用して、カスタムメトリクスを Camel インテグレーションコードに登録します。以下の例は、
Metrics.javaインテグレーションを示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて Camel MicroProfile Metrics アノテーションを実装ファイルに追加します。以下の例は、ランダムに失敗を生成する Camel K インテグレーションによって呼び出される
serviceBean を示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 「Configuring Camel K integration metrics」の手順に従い、インテグレーションを実行し、Prometheus でカスタム Camel K メトリクスを確認します。
この例では、
Metrics.javaですでに Camel K モードラインが使用され、Prometheus とService.javaに必要な Maven 依存関係が自動的に設定されます。
第3章 Camel K Operator のモニタリング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Integration - Camel K モニタリングは OpenShift モニタリングシステム に基づいています。本章では、実行時に Red Hat Integration - Camel K Operator を監視するためにオプションを使用する方法について説明します。OpenShift Monitoring の一部としてすでにデプロイされている Prometheus Operator を使用して、独自のアプリケーションを監視することができます。
3.1. Camel K Operator メトリクス リンクのコピーリンクがクリップボードにコピーされました!
Camel K Operatorモニタリングエンドポイントは、以下のメトリクスを公開します。
| 名前 | 型 | 説明 | バケット | ラベル |
|---|---|---|---|---|
|
|
| 調整要求の期間 | 0.25 s、0.5 s、1 s、5 s |
|
|
|
| ビルド期間 | 30 s、1 m、1.5 m、2 m、5 m、10 m |
|
|
|
| ビルドリカバリーの試行 | 0、1、2、3、4、5 |
|
|
|
| ビルドキューの期間 | 5 s、15 s、30 s、1 m、5 m、 | 該当なし |
|
|
| 最初のインテグレーションの準備ができるまでの時間 | 5 s、10 s、30 s、1 m、2 m | 該当なし |
3.2. Camel K Operator モニタリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift 4.3 以降には、OpenShift Monitoring の一部としてすでにデプロイされている組み込みの Prometheus Operator が含まれています。ここでは、OpenShift Monitoring で独自のアプリケーションサービスのモニタリングを有効にする方法について説明します。
前提条件
- Camel K Operator がインストールされている OpenShift クラスターにクラスター管理者としてアクセスできる必要があります。「Installing Camel K」を参照してください。
- OpenShift で、独自のサービスのモニタリングが有効になっている必要があります。「Enabling user workload monitoring in OpenShift」を参照してください。
手順
Operator メトリクスエンドポイントを対象とする
PodMonitorリソースを作成し、Prometheus サーバーが Operator によって公開されるメトリクスをスクレープできるようにします。operator-pod-monitor.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PodMonitorリソースを作成します。oc apply -f operator-pod-monitor.yaml
oc apply -f operator-pod-monitor.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
その他のリソース
- 検索メカニズムおよび Operator リソース間の関係についての詳細は、「Prometheus Operator getting started guide」を参照してください。
-
Operator メトリクスが検出されない場合は、「Troubleshooting ServiceMonitor changes」を参照してください。これは、
PodMonitorリソースのトラブルシューティングにも適用されます。
3.3. Camel K Operator のアラート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift モニタリングスタックからの AlertManager インスタンスが Camel K Operator によって公開されるメトリクスに基づいてアラートをトリガーできるように、PrometheusRule リソースを作成することができます。
例
以下のように、公開されるメトリクスに基づいて、アラートルールで PrometheusRule リソースを作成できます。
Camel K Operator のアラート
以下の表は、PrometheusRule リソースで定義されるアラートルールを示しています。
| 名前 | 重大度 | 説明 |
|---|---|---|
|
| warning | 全体の 10% を超える調整要求で、最低でも 1 分の間に期間が 0.5 秒を超える。 |
|
| warning | 全体の 1% を超える調整要求が、最低でも 10 分間失敗している。 |
|
| warning | 全体の 10% を超える正常なビルドで、最低でも 1 分の間に期間が 2 分を超える。 |
|
| critical | 全体の 1% を超える正常なビルドで、最低でも 1 分の間に期間が 5 分を超える。 |
|
| critical | 全体の 1% を超えるビルドで、最低でも 10 分間エラーが発生している。 |
|
| warning | 全体の 1% を超えるビルドが、最低でも 1 分間 1 分を超えてキューに入れられている。 |
|
| critical | 全体の 1% を超えるビルドが、最低でも 1 分間 5 分を超えてキューに入れられている。 |
アラートについての詳細は、OpenShift のドキュメントの「Creating alerting rules」を参照してください。
第4章 Camel K インテグレーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Camel K インテグレーションのライフサイクルには、以下の 2 つの設定フェーズがあります。
- ビルド時: Camel Quarkus が Camel K インテグレーションをビルドする場合、ビルド時プロパティーが使用されます。
- ランタイム: Camel K インテグレーションが実行されると、インテグレーションはローカルファイル、OpenShift ConfigMap、または Secret からのランタイムプロパティーまたは設定情報を使用します。
kamel run コマンドで以下のオプションを使用して設定情報を指定します。
-
ビルド時の設定の場合は、「Specifying build-time configuration properties」で説明されている
--build-propertyオプションを使用します。 -
ランタイムの設定の場合は、「Specifying runtime configuration options」で説明されているように、
--property、--config、または--resourceオプションを使用します。
たとえば、ビルド時とランタイムオプションを使用して、Connect Camel K with databases のサンプル設定のように、Camel K のデータソースを迅速に設定できます。
4.1. ビルド時の設定プロパティーの指定 リンクのコピーリンクがクリップボードにコピーされました!
Camel K インテグレーションをビルドできるように、プロパティー値を Camel Quarkus ランタイムに提供する必要がある場合があります。ビルド時に有効な Quarkus 設定の詳細は、Quarkus Build Time 設定についてのドキュメントを参照してください。ビルド時のプロパティーはコマンドラインで直接指定するか、プロパティーファイルを参照して指定できます。プロパティーが両方の場所に定義されている場合は、コマンドラインで直接指定された値は、プロパティーファイルの値よりも優先されます。
前提条件
- Camel K Operator および OpenShift Serverless Operator がインストールされている OpenShift クラスターにアクセスできる必要があります。
- Camel K のインストール
- OperatorHub からの OpenShift Serverless のインストール
- Camel K インテグレーションに適用する Camel Quarkus 設定オプションを把握している必要があります。
手順
Camel K
kamel runコマンドで--build-propertyオプションで指定します。kamel run --build-property <quarkus-property>=<property-value> <camel-k-integration>
kamel run --build-property <quarkus-property>=<property-value> <camel-k-integration>Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、以下の Camel K インテグレーション (名前:
my-simple-timer.yaml) はquarkus.application.name設定オプションを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトのアプリケーション名を上書きするには、インテグレーションの実行時に
quarkus.application.nameプロパティーの値を指定します。たとえば、名前を
my-simple-timerからmy-favorite-appに変更するには、次のコマンドを実行します。kamel run --build-property quarkus.application.name=my-favorite-app my-simple-timer.yaml
kamel run --build-property quarkus.application.name=my-favorite-app my-simple-timer.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 複数のビルド時プロパティーを提供するには、
kamel runコマンドにさらに--build-propertyオプションを追加します。kamel run --build-property <quarkus-property1>=<property-value1> -build-property=<quarkus-property2>=<property-value12> <camel-k-integration>
kamel run --build-property <quarkus-property1>=<property-value1> -build-property=<quarkus-property2>=<property-value12> <camel-k-integration>Copy to Clipboard Copied! Toggle word wrap Toggle overflow また、複数のプロパティーを指定する必要がある場合は、プロパティーファイルを作成して
--build-property fileオプションでプロパティーファイルを指定することもできます。kamel run --build-property file:<property-filename> <camel-k-integration>
kamel run --build-property file:<property-filename> <camel-k-integration>Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、以下のプロパティーファイル (名前:
quarkus.properties) は 2 つの Quarkus プロパティーを定義します。quarkus.application.name = my-favorite-app quarkus.banner.enabled = true
quarkus.application.name = my-favorite-app quarkus.banner.enabled = trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow quarkus.banner.enabledプロパティーは、インテグレーションの起動時に Quarkus バナーを表示するように指定します。Camel K kamel run コマンドで
quarkus.propertiesファイルを指定するには、以下を実行します。kamel run --build-property file:quarkus.properties my-simple-timer.yaml
kamel run --build-property file:quarkus.properties my-simple-timer.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Quarkus はプロパティーファイルを解析し、プロパティー値を使用して Camel K インテグレーションを設定します。
その他のリソース
Camel K インテグレーションのランタイムとしての Camel Quarkus の詳細は、「Quarkus Trait」を参照してください。
4.2. ランタイム設定オプションの指定 リンクのコピーリンクがクリップボードにコピーされました!
稼働時に使用する Camel K インテグレーションの以下のランタイム設定情報を指定できます。
- コマンドラインまたは .properties ファイルで指定するランタイムプロパティー
- インテグレーションの開始時に Camel K Operator が処理し、ランタイムプロパティーとして解析する設定値。設定値は、ローカルのテキストファイル、OpenShift ConfigMap、または OpenShift シークレットで指定できます。
- インテグレーションの起動時にプロパティーファイルとして解析されないリソース情報。ローカルのテキストファイル、バイナリーファイル、OpenShift ConfigMap、または OpenShift シークレットでリソース情報を指定できます。
以下の kamel run オプションを使用します。
--property--propertyオプションを使用して、コマンドラインでランタイムプロパティーを直接指定するか、Java*.propertiesファイルを参照します。Camel K Operator は、稼働中のインテグレーションのuser.propertiesファイルにプロパティーファイルの内容を追加します。--config--configオプションを使用して、インテグレーションの開始時に Camel K Operator が処理し、ランタイムプロパティーとして解析する設定値を指定します。ローカルのテキストファイル (1 MiB の最大ファイルサイズ)、ConfigMap (3 MB) またはシークレット (3 MB) を指定できます。このファイルは、ÙTF-8 リソースである必要があります。マテリアル化されたファイル (提供するファイルからインテグレーションを起動する時に生成される) は、クラスパスレベルで利用可能になります。これにより、正確な場所を指定しなくてもインテグレーションコードで参照できるようになります。
注記: 非 UTF-8 リソース (バイナリーファイルなど) を提供する必要がある場合は、
--resourceオプションを使用します。--resource--resourceオプションを使用して、インテグレーションの稼働時にアクセスするリソースを提供します。ローカルのテキストファイルまたはバイナリーファイル (1 MiB の最大ファイルサイズ)、ConfigMap (最大 3 MB) またはシークレット (最大 3 MB) を指定できます。オプションで、リソース用にマテリアル化したファイルの宛先を指定できます。たとえば、HTTPS 接続を設定する場合は、--resourceオプションを使用して、指定した場所にあると予想される SSL 証明書 (バイナリーファイル) を指定します。Camel K Operator はプロパティーのリソースを解析したり、リソースをクラスパスに追加したりしません。(クラスパスにリソースを追加する場合は、インテグレーションで JVM トレイト を使用できます)。
4.2.1. ランタイムプロパティーの指定 リンクのコピーリンクがクリップボードにコピーされました!
kamel run コマンドで --property オプションを使用して、コマンドラインで直接または Java *.properties ファイルを参照してランタイムプロパティーを指定できます。
--property オプションを使用してインテグレーションを実行する場合、Camel K Operator は稼働中のインテグレーションの user.properties ファイルにプロパティーを追加します。
4.2.1.1. コマンドラインでのランタイムプロパティーの指定 リンクのコピーリンクがクリップボードにコピーされました!
実行時にコマンドラインで Camel K インテグレーションのプロパティーを設定できます。プロパティーのプレースホルダーを使用してインテグレーションのプロパティーを定義する場合 (例: {{my.message}})、--property my.message=Hello のようにコマンドラインでプロパティー値を指定できます。1 つのコマンドで複数のプロパティーを指定できます。
手順
プロパティーを使用する Camel インテグレーションを開発します。以下の簡単な例には、
{{my.message}}プロパティープレースホルダーが含まれています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の構文を使用してインテグレーションを実行し、実行時にプロパティー値を設定します。
kamel run --property <property>=<value> <integration>
kamel run --property <property>=<value> <integration>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、(
--propertyの代わりに)--p短縮表記を使用することもできます。kamel run --property <property>=<value> <integration>
kamel run --property <property>=<value> <integration>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
kamel run --property my.message="Hola Mundo" HelloCamelK.java --dev
kamel run --property my.message="Hola Mundo" HelloCamelK.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow または
kamel run --p my.message="Hola Mundo" HelloCamelK.java --dev
kamel run --p my.message="Hola Mundo" HelloCamelK.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は、結果の例になります。
... [1] 2020-04-13 15:39:59.213 INFO [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesDumper@6e0dec4a executed in phase Started [1] 2020-04-13 15:40:00.237 INFO [Camel (camel-k) thread #1 - timer://java] info - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hola Mundo from java] ...
... [1] 2020-04-13 15:39:59.213 INFO [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesDumper@6e0dec4a executed in phase Started [1] 2020-04-13 15:40:00.237 INFO [Camel (camel-k) thread #1 - timer://java] info - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hola Mundo from java] ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
その他の参考資料
4.2.1.2. プロパティーファイルでのランタイムプロパティーの指定 リンクのコピーリンクがクリップボードにコピーされました!
実行時にコマンドラインでプロパティーファイル (*.properties) を指定すると、Camel K インテグレーションに複数のプロパティーを設定できます。たとえば、{{my.items}} プロパティープレースホルダーを使用してインテグレーションでプロパティーを定義する場合、--p file my-integration.properties のようにプロパティーファイルを使用してコマンドラインでプロパティー値を指定できます。
手順
インテグレーションのプロパティーファイルを作成します。以下は、
my.propertiesという名前のファイルの例です。my.key.1=hello my.key.2=world
my.key.1=hello my.key.2=worldCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティーファイルに定義されたプロパティーを使用する Camel インテグレーションを開発します。以下の
Routing.javaサンプルインテグレーションでは、{{my.key.1}}および{{my.key.2=world}}プロパティープレースホルダーが使用されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の構文を使用してインテグレーションを実行し、プロパティーファイルを参照します。
kamel run --property file:<my-file.properties> <integration>
kamel run --property file:<my-file.properties> <integration>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、(
--propertyの代わりに)--p短縮表記を使用することもできます。kamel run --p file:<my-file.properties> <integration>
kamel run --p file:<my-file.properties> <integration>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
kamel run Routing.java --property:file=my.properties --dev
kamel run Routing.java --property:file=my.properties --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は、結果の例になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2. 設定値の指定 リンクのコピーリンクがクリップボードにコピーされました!
kamel run コマンドの --config オプションを使用して、Camel K Operator がランタイムプロパティーとして処理し、解析する設定値を指定できます。設定値は、ローカルのテキスト (ÙTF-8) ファイル、OpenShift ConfigMap、または OpenShift シークレットで指定できます。
インテグレーションの実行時に、Camel K Operator は提供されたファイルをマレリアル化し、これをクラスパスに追加します。これにより、正確な場所を指定しなくてもインテグレーションコードの設定値を参照できます。
4.2.2.1. テキストファイルの指定 リンクのコピーリンクがクリップボードにコピーされました!
設定値が含まれる UTF-8 テキストファイルがある場合は、--config file:/path/to/file オプションを使用して、実行中のインテグレーションのクラスパスでファイルを (同じファイル名で) 利用可能にすることができます。
前提条件
- Setting up your Camel K development environment
設定値が含まれる 1 つ以上の (バイナリー以外の) テキストファイルがある。
たとえば、以下のテキスト行を含む
resources-data.txtという名前のファイルを作成します。the file body
the file bodyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
設定値が含まれるテキストファイルを参照する Camel K インテグレーションを作成します。
たとえば、以下のインテグレーション (
ConfigFileRoute.java) は、実行時にクラスパスでresources-data.txtファイルが利用可能でなければなりません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションを実行し、実行中のインテグレーションで使用できるように、
--configオプションを使用してテキストファイルを指定します。以下に例を示します。kamel run --config file:resources-data.txt ConfigFileRoute.java --dev
kamel run --config file:resources-data.txt ConfigFileRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて、
--configオプションを繰り返し追加して、複数のファイルを指定できます。以下に例を示します。kamel run --config file:resources-data1.txt --config file:resources-data2.txt ConfigFileRoute.java --dev
kamel run --config file:resources-data1.txt --config file:resources-data2.txt ConfigFileRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2.2. ConfigMap の指定 リンクのコピーリンクがクリップボードにコピーされました!
設定値が含まれる OpenShift ConfigMap があり、Camel K インテグレーションで使用できるように ConfigMap をマテリアル化する必要がある場合には、--config configmap:<configmap-name> 構文を使用します。
前提条件
- Setting up your Camel K development environment
OpenShift クラスター上に 1 つ以上の ConfigMap ファイルがある。
たとえば、以下のコマンドを使用して ConfigMap を作成できます。
oc create configmap my-cm --from-literal=my-configmap-key="configmap content"
oc create configmap my-cm --from-literal=my-configmap-key="configmap content"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
ConfigMap を参照する Camel K インテグレーションを作成します。
たとえば、以下のインテグレーション (名前:
ConfigConfigmapRoute.java) は、my-cm という名前の ConfigMap のmy-configmap-keyという名前の設定値を参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションを実行し、
--configオプションを使用して ConfigMap ファイルをマテリアル化し、実行中のインテグレーションで使用できるようにします。以下に例を示します。kamel run --config configmap:my-cm ConfigConfigmapRoute.java --dev
kamel run --config configmap:my-cm ConfigConfigmapRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションが起動すると、Camel K Operator は ConfigMap の内容で OpenShift ボリュームをマウントします。
注記: クラスターでまだ利用できない ConfigMap を指定した場合、Integration は待機し ConfigMap が利用可能になって初めて起動します。
4.2.2.3. シークレットの指定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift シークレットを使用して、設定情報を安全に含めることができます。--config secret 構文を使用して、Camel K インテグレーションが利用できるようシークレットをマテリアル化することができます。
前提条件
- Setting up your Camel K development environment
OpenShift クラスター上に 1 つ以上のシークレットがある。
たとえば、以下のコマンドを使用してシークレットを作成できます。
oc create secret generic my-sec --from-literal=my-secret-key="very top secret"
oc create secret generic my-sec --from-literal=my-secret-key="very top secret"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
ConfigMap を参照する Camel K インテグレーションを作成します。
たとえば、以下のインテグレーション (名前:
ConfigSecretRoute.java) は、my-secという名前のシークレットのmy-secretプロパティーを参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションを実行し、
--configオプションを使用してシークレットをマテリアル化し、実行中のインテグレーションで使用できるようにします。以下に例を示します。kamel run --config secret:my-sec ConfigSecretRoute.java --dev
kamel run --config secret:my-sec ConfigSecretRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションが起動すると、Camel K Operator はシークレットの内容で OpenShift ボリュームをマウントします。
4.2.2.4. ConfigMap またはシークレットに含まれるプロパティーの参照 リンクのコピーリンクがクリップボードにコピーされました!
インテグレーションを実行し、--config オプションで ConfigMap またはシークレットを指定する場合、Camel K Operator は ConfigMap またはシークレットをランタイムプロパティーファイルとして解析します。インテグレーション内で、他のランタイムプロパティーを参照する際にプロパティーを参照できます。
手順
プロパティーが含まれるテキストファイルを作成します。
たとえば、以下のプロパティーを含む
my.propertiesという名前のファイルを作成します。my.key.1=hello my.key.2=world
my.key.1=hello my.key.2=worldCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティーファイルに基づいて ConfigMap またはシークレットを作成します。
たとえば、以下のコマンドを使用して my.properties ファイルからシークレットを作成します。
oc create secret generic my-sec --from-file my.properties
oc create secret generic my-sec --from-file my.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションで、シークレットに定義されたプロパティーを参照します。
たとえば、以下のインテグレーション (名前:
ConfigSecretPropertyRoute.java) はmy.key.1およびmy.key.2プロパティーを参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションを実行し、
--configオプションを使用して、my.key.1およびmy.key.2プロパティーが含まれるシークレットを指定します。以下に例を示します。
kamel run --config secret:my-sec ConfigSecretPropertyRoute.java --dev
kamel run --config secret:my-sec ConfigSecretPropertyRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2.5. ConfigMap またはシークレットから取得した設定値の絞り込み リンクのコピーリンクがクリップボードにコピーされました!
ConfigMap およびシークレットは複数のソースを保持できます。たとえば、以下のコマンドは 2 つのソースからシークレット (my-sec-multi) を作成します。
oc create secret generic my-sec-multi --from-literal=my-secret-key="very top secret" --from-literal=my-secret-key-2="even more secret"
oc create secret generic my-sec-multi --from-literal=my-secret-key="very top secret" --from-literal=my-secret-key-2="even more secret"
--config configmap または --config secret オプションの後に /key 表記を使用して、インテグレーションが取得する情報量を 1 つのソースに制限することができます。
前提条件
- Setting up your Camel K development environment
- 複数のソースを保持する ConfigMap またはシークレットがある。
手順
ConfigMap またはシークレットのいずれかのソースだけからの設定値を使用するインテグレーションを作成します。
たとえば、以下のインテグレーション (
ConfigSecretKeyRoute.java) は、my-sec-multiシークレット内のいずれかのソースだけからのプロパティーを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow --config secretオプションと/key表記を使用してインテグレーションを実行します。以下に例を示します。
kamel run --config secret:my-sec-multi/my-secret-key-2 ConfigSecretKeyRoute.java --dev
kamel run --config secret:my-sec-multi/my-secret-key-2 ConfigSecretKeyRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーション Pod を確認し、指定されたソース (例:
my-secret-key-2) のみがマウントされていることを確認します。たとえば、以下のコマンドを実行して Pod のすべてのボリュームを一覧表示します。
oc set volume pod/<pod-name> --all
oc set volume pod/<pod-name> --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3. 実行中のインテグレーションへのリソースの提供 リンクのコピーリンクがクリップボードにコピーされました!
kamel run コマンドの --resource オプションを使用すると、実行しているときに使用するインテグレーションのリソースを指定できます。ローカルのテキストファイル (1 MiB の最大ファイルサイズ)、ConfigMap (3 MB) またはシークレット (3 MB) を指定できます。オプションで、リソース用にマテリアル化したファイルの宛先を指定できます。たとえば、HTTPS 接続を設定する場合は、--resource オプションを使用します。これは、既知の場所にあると予想されるバイナリーファイルである SSL 証明書を提供する必要があるためです。
--resource オプションを使用する場合、Camel K Operator はランタイムプロパティーを検索するリソースを解析せず、リソースをクラスパスに追加しません。(クラスパスにリソースを追加する場合は、JVM トレイト を使用できます。)
4.2.3.1. リソースとしてのテキストまたはバイナリーファイルの指定 リンクのコピーリンクがクリップボードにコピーされました!
設定値が含まれるテキストファイルまたはバイナリーファイルがある場合は、--resource file:/path/to/file オプションを使用してファイルをマテリアル化できます。デフォルトでは、Camel K Operator はマテリアル化されたファイルを /etc/camel/resources/ ディレクトリーにコピーします。オプションで、「リソースの宛先パスの指定」で説明されているように、別の宛先ディレクトリーを指定できます。
前提条件
- Setting up your Camel K development environment
- 設定プロパティーが含まれる 1 つ以上のテキストまたはバイナリーファイルがある。
手順
指定するファイルの内容を読み取る Camel K インテグレーションを作成します。
たとえば、以下のインテグレーション (
ResourceFileBinaryRoute.java) は、resources-data.zipファイルを展開して読み取ります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションを実行し、
--resourceオプションを使用してファイルをデフォルトの宛先ディレクトリー (/etc/camel/resources/) にコピーします。以下に例を示します。kamel run --resource file:resources-data.zip ResourceFileBinaryRoute.java -d camel-zipfile --dev
kamel run --resource file:resources-data.zip ResourceFileBinaryRoute.java -d camel-zipfile --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: バイナリーファイルを指定すると、ファイルの内容のバイナリー表現が作成され、インテグレーションで透過的にデコードされます。
必要に応じて、
--resourceオプションを繰り返し追加して、複数のリソースを指定できます。以下に例を示します。kamel run --resource file:resources-data1.txt --resource file:resources-data2.txt ResourceFileBinaryRoute.java -d camel-zipfile --dev
kamel run --resource file:resources-data1.txt --resource file:resources-data2.txt ResourceFileBinaryRoute.java -d camel-zipfile --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3.2. リソースとしての ConfigMap の指定 リンクのコピーリンクがクリップボードにコピーされました!
設定値が含まれる OpenShift ConfigMap があり、ConfigMap をインテグレーションのリソースとしてマテリアル化する必要がある場合は、--resource <configmap-file> オプションを使用します。
前提条件
- Setting up your Camel K development environment
OpenShift クラスター上に 1 つ以上の ConfigMap ファイルがある。たとえば、以下のコマンドを使用して ConfigMap を作成できます。
oc create configmap my-cm --from-literal=my-configmap-key="configmap content"
oc create configmap my-cm --from-literal=my-configmap-key="configmap content"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
OpenShift クラスターに保存されている ConfigMap を参照する Camel K インテグレーションを作成します。
たとえば、以下のインテグレーション (名前:
ResourceConfigmapRoute.java) は、my-configmap-keyが含まれるmy-cmという名前の ConfigMap を参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションを実行し、
--resourceオプションを使用してデフォルトの/etc/camel/resources/ディレクトリーの ConfigMap ファイルをマテリアル化し、実行中のインテグレーションで使用できるようにします。以下に例を示します。
kamel run --resource configmap:my-cm ResourceConfigmapRoute.java --dev
kamel run --resource configmap:my-cm ResourceConfigmapRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションが起動すると、Camel K Operator は ConfigMap の内容でボリュームをマウントします (例:
my-configmap-key)。
注記: クラスターでまだ利用できない ConfigMap を指定した場合、Integration は待機し ConfigMap が利用可能になって初めて起動します。
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"
oc create secret generic my-sec --from-literal=my-secret-key="very top secret"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
OpenShift クラスターに保存されているシークレットを参照する Camel K インテグレーションを作成します。
たとえば、以下のインテグレーション (名前:
ResourceSecretRoute.java) はmy-secシークレットを参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションを実行し、
--resourceオプションを使用してデフォルトの/etc/camel/resources/ディレクトリーのシークレットファイルをマテリアル化し、実行中のインテグレーションで使用できるようにします。以下に例を示します。
kamel run --resource secret:my-sec ResourceSecretRoute.java --dev
kamel run --resource secret:my-sec ResourceSecretRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションが起動すると、Camel K Operator はシークレットの内容でボリュームをマウントします (例:
my-sec)。
注記: クラスターでまだ利用できないシークレットを指定した場合、Integration は待機しシークレットが利用可能になって初めて起動します。
4.2.3.4. リソースの宛先パスの指定 リンクのコピーリンクがクリップボードにコピーされました!
/etc/camel/resources/ ディレクトリーは、--resource オプションで指定するリソースをマウントするためのデフォルトの場所です。リソースをマウントする別のディレクトリーを指定する必要がある場合は、--resource @path 構文を使用します。
前提条件
- Setting up your Camel K development environment
- 1 つ以上の設定プロパティーが含まれるファイル、ConfigMap、またはシークレットがある。
手順
設定プロパティーが含まれるファイル、ConfigMap、またはシークレットを参照する Camel K インテグレーションを作成します。たとえば、以下のインテグレーション (名前:
ResourceFileLocationRoute.java) はmypropsファイルを参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションを実行し、
@path構文で--resourceオプションを使用して、リソースの内容 (ファイル、ConfigMap、または Secret のいずれか) をマウントする場所を指定します。たとえば、以下のコマンドは、
/tmpディレクトリーを使用してinput.txtファイルをマウントするように指定します。kamel run --resource file:resources-data.txt@/tmp/input.txt ResourceFileLocationRoute.java --dev
kamel run --resource file:resources-data.txt@/tmp/input.txt ResourceFileLocationRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションの Pod で、ファイル (例:
input.txt) が正しい場所 (例:tmpディレクトリー内) にマウントされていることを確認します。たとえば、以下のコマンドを実行します。oc exec <pod-name> -- cat /tmp/input.txt
oc exec <pod-name> -- cat /tmp/input.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3.5. ConfigMap またはシークレットデータの絞り込み リンクのコピーリンクがクリップボードにコピーされました!
ConfigMap またはシークレットの作成時に、複数の情報ソースを指定できます。たとえば、以下のコマンドは、2 つのソースから ConfigMap (my-cm-multi という名前) を作成します。
oc create configmap my-cm-multi --from-literal=my-configmap-key="configmap content" --from-literal=my-configmap-key-2="another content"
oc create configmap my-cm-multi --from-literal=my-configmap-key="configmap content" --from-literal=my-configmap-key-2="another content"
--resource オプションでインテグレーションを実行すると、ConfigMap またはシークレットは複数のソースで作成され、デフォルトでは両方のソースがマテリアル化されます。
ConfigMap またはシークレットからリカバリーする情報量を制限する場合は、ConfigMap またはシークレット名の後に --resource オプションの /key 表記を指定できます。例: --resource configmap:my-cm/my-key または --resource secret:my-secret/my-key
--resource configmap または --resource secret オプションの後に /key 表記を使用して、インテグレーションが取得する情報量を 1 つのソースに制限することができます。
前提条件
- Setting up your Camel K development environment
- 複数のソースからの値を保持する ConfigMap またはシークレットがある。
手順
ConfigMap またはシークレットのいずれかのリソースだけからの設定値を使用するインテグレーションを作成します。たとえば、以下のインテグレーション (名前:
ResourceConfigmapKeyLocationRoute.java) はmy-cm-multiConfigMap を参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションを実行し、
@path構文で--resourceオプションを使用して、ソースの内容 (ファイル、ConfigMap、または Secret のいずれか) をマウントする場所を指定します。たとえば、以下のコマンドは ConfigMap 内に含まれるソースのいずれか (
my-configmap-key-2@) のみを使用し、/tmp/app/dataディレクトリーを使用してマウントすることを指定します。kamel run --resource configmap:my-cm-multi/my-configmap-key-2@/tmp/app/data ResourceConfigmapKeyLocationRoute.java --dev
kamel run --resource configmap:my-cm-multi/my-configmap-key-2@/tmp/app/data ResourceConfigmapKeyLocationRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションの Pod で、1 つのファイル (例:
my-configmap-key-2) だけが正しい場所 (例:/tmp/app/dataディレクトリー内) にマウントされていることを確認します。たとえば、以下のコマンドを実行します。oc exec <pod-name> -- cat /tmp/app/data/my-configmap-key-2
oc exec <pod-name> -- cat /tmp/app/data/my-configmap-key-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. Camel インテグレーションコンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
Camel コンポーネントは、インテグレーションコードにプログラミングを使用して設定でき、実行時にコマンドラインで設定プロパティーを使用して設定することもできます。以下の構文を使用して Camel コンポーネントを設定できます。
camel.component.${scheme}.${property}=${value}
camel.component.${scheme}.${property}=${value}
たとえば、段階的なイベント駆動型アーキテクチャーの Camel seda コンポーネントのキューサイズを変更するには、コマンドラインで以下のプロパティーを設定します。
camel.component.seda.queueSize=10
camel.component.seda.queueSize=10
手順
kamel runコマンドを入力し、--propertyオプションを使用して Camel コンポーネント設定を指定します。以下に例を示します。kamel run --property camel.component.seda.queueSize=10 examples/Integration.java
kamel run --property camel.component.seda.queueSize=10 examples/Integration.javaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. Camel K インテグレーション依存関係の設定 リンクのコピーリンクがクリップボードにコピーされました!
Camel K は、インテグレーションコードの実行に必要なさまざまな依存関係を自動的に解決します。ただし、kamel run --dependency オプションを使用すると、実行時にコマンドラインに依存関係を明示的に追加できます。
以下のインテグレーションの例では Camel K の依存関係の自動解決が使用されます。
...
from("imap://admin@myserver.com")
.to("seda:output")
...
...
from("imap://admin@myserver.com")
.to("seda:output")
...
このインテグレーションには imap: プレフィックスで始まるエンドポイントがあるため、Camel K は自動的に camel-mail コンポーネントを必要な依存関係のリストに追加できます。seda: エンドポイントは、すべてのインテグレーションに自動的に追加される camel-core に属しているため、Camel K はこのコンポーネントにその他の依存関係を追加しません。
Camel K 依存関係の自動解決は、実行時にユーザーに対して透過的です。これは、開発ループを終了せずに必要なすべてのコンポーネントを素早く追加できるため、開発モードで非常に便利です。
kamel run --dependency または -d オプションを使用して、依存関係を明示的に追加できます。これを使用して、Camel カタログに含まれていない依存関係を指定する必要がある場合があります。コマンドラインで複数の依存関係を指定できます。
手順
kamel runコマンドを入力し、-dオプションを使用して依存関係を指定します。以下に例を示します。kamel run -d mvn:com.google.guava:guava:26.0-jre -d camel-mina2 Integration.java
kamel run -d mvn:com.google.guava:guava:26.0-jre -d camel-mina2 Integration.javaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-trait dependencies.enabled=false のように、依存関係トレイトを無効にすると、依存関係の自動解決を無効することができます。ただし、これはほとんどの場合で推奨されません。
第5章 管理対象 Kafka に対する Camel K の認証 リンクのコピーリンクがクリップボードにコピーされました!
この例は、Camel K で使用するために管理対象 Kafka に対して認証を行う方法を示しています。以下の例では、Red Hat OpenShift Streams for Apache Kafka を使用して Kafka トピックを設定し、それを単純なプロデューサー/コンシューマーパターンのインテグレーションで使用する方法を実証しています。
前提条件
- 適切なアクセスレベルで OpenShift 4.6 (またはそれ以降の) クラスターにアクセスできること。この場合、プロジェクトの作成および Operator のインストールができること。また、OpenShift および Red Hat Integration CLI をローカルシステムにインストールできること。
- コマンドラインで OpenShift クラスターと対話できるように OpenShift CLI ツール (oc) をインストールしていること。
5.1. OpenShift クラスターの準備 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Streams for Apache Kafka 管理クラウドサービスを使用するには、以下の Operator およびツールをインストールする必要があります。
- Red Hat Integration - Camel K Operator は、Camel K (OpenShift のクラウドでネイティブに実行される軽量なインテグレーションフレームワーク) をインストールし、管理します。
- Camel K CLI ツール: すべての Camel K 機能にアクセスできます。
前提条件
- 適切なアクセスレベルで OpenShift 4.6 またはそれ以降のクラスターにアクセスできること。この場合、プロジェクトの作成および Operator のインストールができること。また、OpenShift および Apache Camel K CLI をローカルシステムにインストールできること。
-
コマンドラインで OpenShift クラスターと対話できるように OpenShift CLI ツール (
oc) をインストールしていること。
手順
- クラスター管理者アカウントで OpenShift Web コンソールにログインします。
Kafka と kamelets アプリケーションの接続に使用する OpenShift プロジェクトを作成します。
- Home > Projects を選択します。
- Create Project をクリックします。
-
プロジェクトの名前 (例:
my-camel-k-kafka) を入力し、続いて Create をクリックします。
- 「Installing Camel K」の説明に従って、Camel K Operatorおよび Camel L CLI をインストールします。
- Red Hat Integration - Camel K Operator がインストールされていることを確認するには、Operators > Installed Operators の順にクリックします。
5.2. Kafka トピックの設定 リンクのコピーリンクがクリップボードにコピーされました!
Kafka は トピック に関するメッセージを整理します。各トピックには名前があります。アプリケーションは、トピックにメッセージを送信し、トピックからメッセージを取得します。Kafka トピックは、Kafka インスタンスのデータの保存先を提供します。データを送信する前に、Kafka トピックを設定する必要があります。
前提条件
- Apache Kafka の概念を理解している。
- 適切なアクセスレベルで OpenShift クラスターにアクセスできること。この場合、プロジェクトの作成および Operator のインストールができること。また、OpenShift および Camel K CLI をローカルシステムにインストールできること。
-
「Preparing your OpenShift cluster」の手順に従って、OpenShift CLI (
oc) および Camel K CLI (kamel) ツールをインストールしている。 - 「Preparing your OpenShift cluster」の手順に従って、Red Hat Integration - Camel K Operator をインストールしている。
手順
Red Hat OpenShift Streams for Apache Kafka を使用して Kafka トピックを設定するには、以下を行います。
- コマンドラインから OpenShift クラスターにログインします。
以下のように、kamelets で Kafka に接続するプロジェクトを開きます。
oc project my-camel-k-kafka
oc project my-camel-k-kafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な Operator がプロジェクトにインストールされていることを確認します。
oc get csv
oc get csvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 結果には、Red Hat Camel K および RHOAS Operator が表示され、それらが
Succeededフェーズにあることを示します。Kafka インスタンスを準備し、RHOAS に接続します。
以下のコマンドを使用して RHOAS CLI にログインします。
rhoas login
rhoas loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow kafka-test などの kafka インスタンスを作成します。
rhoas kafka create kafka-test
rhoas kafka create kafka-testCopy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka インスタンスを作成するプロセスの完了に数分かかる場合があります。
Kafka インスタンスのステータスを確認するには、以下を実行します。
rhoas status
rhoas statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow Web コンソール https://cloud.redhat.com/beta/application-services/streams/kafkas/ でステータスを表示することもできます。ステータスが ready の場合は、次の手順に進みます。
新しい Kafka トピックを作成します。
rhoas kafka topic create test-topic
rhoas kafka topic create test-topicCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. Kafka クレデンシャルの取得 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Streams for Apache Kafka Web コンソールで Kafka インスタンスにアプリケーションやサービスを接続するには、インスタンスに関連付けられたサービスアカウントを作成する必要があります。インスタンスのブートストラップサーバーのエンドポイントを、生成されたサービスアカウントのクレデンシャル、および認証トークンエンドポイントを安全な場所に保存する必要があります。このサービスアカウントおよび Kafka インスタンス情報は、後でアプリケーションを設定するときに使用されます。
- ブートストラップ URL を取得します。
- クレデンシャル (ユーザー名とパスワード) を使用してサービスアカウントを作成します。
OpenShift Streams では、Camel k の認証方法は SASL_SSL です。
前提条件
- Kafka インスタンスを作成し、ステータスが ready である。
- Kafka トピックを作成している。
手順
次のコマンドを入力して、サービスアカウントを作成します。この例では、
my-service-acctという名前のサービスアカウントを作成し、クレデンシャルを JSON ファイルに保存します。rhoas service-account create --name "my-service-acct" --file-format json Service account my-service-account created Credentials saved to /home/developer/my-project/credentials.json
rhoas service-account create --name "my-service-acct" --file-format json Service account my-service-account created Credentials saved to /home/developer/my-project/credentials.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスアカウントのクレデンシャルが作成され、JSON ファイルに保存されます。サービスアカウントの作成時に、ファイル形式および場所を選択してクレデンシャルを保存できます。
サービスアカウントのクレデンシャルを確認するには、作成した credentials.json ファイルを表示します。
cat credentials.json { "user":"srvc-acct-eb575691-b94a-41f1-ab97-50ade0cd1094", "password":"facf3df1-3c8d-4253-aa87-8c95ca5e1225" }cat credentials.json { "user":"srvc-acct-eb575691-b94a-41f1-ab97-50ade0cd1094", "password":"facf3df1-3c8d-4253-aa87-8c95ca5e1225" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらのクレデンシャルとブートストラップサーバーの URL を使用して、アプリケーションやサービスを Kafka インスタンスに接続します。
Kafka ブローカーの URL (ブートストラップ URL) を取得します。
rhoas status kafka
rhoas status kafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドは、以下のような出力を返します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. SASL/Plain 認証メソッドを使用したシークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
先に取得したクレデンシャル(kafka ブートストラップ URL、サービスアカウント ID およびサービスアカウントのシークレット) を使用してシークレットを作成できます。
手順
application.propertiesファイルを編集し、Kafka クレデンシャルを追加します。application.properties ファイル
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、application.properties ファイルに機密プロパティーが含まれるシークレットを作成します。
oc create secret generic kafka-props --from-file application.properties
oc create secret generic kafka-props --from-file application.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Camel K インテグレーションの実行時に、このシークレットを使用します。
5.5. SASL/OAUTHBearer 認証メソッドを使用したシークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
先に取得したクレデンシャル(kafka ブートストラップ URL、サービスアカウント ID およびサービスアカウントのシークレット) を使用してシークレットを作成できます。
手順
application-oauth.propertiesファイルを編集し、Kafka クレデンシャルを追加します。application-oauth.properties ファイル
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、application.properties ファイルに機密プロパティーが含まれるシークレットを作成します。
oc create secret generic kafka-props --from-file application-oauth.properties
oc create secret generic kafka-props --from-file application-oauth.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Camel K インテグレーションの実行時に、このシークレットを使用します。
5.6. Kafka インテグレーションの実行 リンクのコピーリンクがクリップボードにコピーされました!
プロデューサーインテグレーションの実行
サンプルプロデューサーインテグレーションを作成します。これにより、トピックには 10 秒ごとにメッセージが表示されます。
Sample SaslSSLKafkaProducer.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow その後、プロデューサーインテグレーションを実行します。
kamel run --secret kafka-props SaslSSLKafkaProducer.java --dev
kamel run --secret kafka-props SaslSSLKafkaProducer.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロデューサーは新しいメッセージを作成し、トピックにプッシュし、一部の情報をログに記録します。
[2] 2021-05-06 08:48:11,854 INFO [FromTimer2Kafka] (Camel (camel-1) thread #1 - KafkaProducer[test]) Message correctly sent to the topic! [2] 2021-05-06 08:48:11,854 INFO [FromTimer2Kafka] (Camel (camel-1) thread #3 - KafkaProducer[test]) Message correctly sent to the topic! [2] 2021-05-06 08:48:11,973 INFO [FromTimer2Kafka] (Camel (camel-1) thread #5 - KafkaProducer[test]) Message correctly sent to the topic! [2] 2021-05-06 08:48:12,970 INFO [FromTimer2Kafka] (Camel (camel-1) thread #7 - KafkaProducer[test]) Message correctly sent to the topic! [2] 2021-05-06 08:48:13,970 INFO [FromTimer2Kafka] (Camel (camel-1) thread #9 - KafkaProducer[test]) Message correctly sent to the topic!
[2] 2021-05-06 08:48:11,854 INFO [FromTimer2Kafka] (Camel (camel-1) thread #1 - KafkaProducer[test]) Message correctly sent to the topic! [2] 2021-05-06 08:48:11,854 INFO [FromTimer2Kafka] (Camel (camel-1) thread #3 - KafkaProducer[test]) Message correctly sent to the topic! [2] 2021-05-06 08:48:11,973 INFO [FromTimer2Kafka] (Camel (camel-1) thread #5 - KafkaProducer[test]) Message correctly sent to the topic! [2] 2021-05-06 08:48:12,970 INFO [FromTimer2Kafka] (Camel (camel-1) thread #7 - KafkaProducer[test]) Message correctly sent to the topic! [2] 2021-05-06 08:48:13,970 INFO [FromTimer2Kafka] (Camel (camel-1) thread #9 - KafkaProducer[test]) Message correctly sent to the topic!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
コンシューマーインテグレーションの実行
コンシューマーインテグレーションを作成します。
Sample SaslSSLKafkaProducer.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 別のシェルを開き、コマンドを使用してコンシューマーインテグレーションを実行します。
kamel run --secret kafka-props SaslSSLKafkaConsumer.java --dev
kamel run --secret kafka-props SaslSSLKafkaConsumer.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンシューマーは、トピックにあるイベントのロギングを開始します。
[1] 2021-05-06 08:51:08,991 INFO [FromKafka2Log] (Camel (camel-1) thread #0 - KafkaConsumer[test]) Message #8 [1] 2021-05-06 08:51:10,065 INFO [FromKafka2Log] (Camel (camel-1) thread #0 - KafkaConsumer[test]) Message #9 [1] 2021-05-06 08:51:10,991 INFO [FromKafka2Log] (Camel (camel-1) thread #0 - KafkaConsumer[test]) Message #10 [1] 2021-05-06 08:51:11,991 INFO [FromKafka2Log] (Camel (camel-1) thread #0 - KafkaConsumer[test]) Message #11
[1] 2021-05-06 08:51:08,991 INFO [FromKafka2Log] (Camel (camel-1) thread #0 - KafkaConsumer[test]) Message #8 [1] 2021-05-06 08:51:10,065 INFO [FromKafka2Log] (Camel (camel-1) thread #0 - KafkaConsumer[test]) Message #9 [1] 2021-05-06 08:51:10,991 INFO [FromKafka2Log] (Camel (camel-1) thread #0 - KafkaConsumer[test]) Message #10 [1] 2021-05-06 08:51:11,991 INFO [FromKafka2Log] (Camel (camel-1) thread #0 - KafkaConsumer[test]) Message #11Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第6章 Camel K トレイト設定の参考情報 リンクのコピーリンクがクリップボードにコピーされました!
本章では、トレイトを使用して実行時にコマンドラインで設定できる高度な機能とコア機能に関する参考情報を紹介します。Camel K は、特定の機能および技術を設定する 機能トレイト (feature trait) を提供します。Camel K は、内部の Camel K コア機能を設定する プラットフォームトレイト を提供します。
Red Hat Integration - Camel K 1.4 には、OpenShift および Knative プロファイルが含まれています。Kubernetes プロファイルのサポートはコミュニティーのみに限定されます。これには、インテグレーション用の Java および YAML DSL のサポートも含まれます。XML、Groovy、JavaScript、Kourtlin などのその他の言語のサポートはコミュニティーのみに限定されます。
本章には、以下が含まれます。
Camel K 機能トレイト
- 「Knative トレイト」 - テクノロジープレビュー
- 「Knative Service トレイト」- テクノロジープレビュー
- 「Prometheus トレイト」
- 「Pdb トレイト」
- 「Pull Secret トレイト」
- 「Route トレイト」
- 「Service トレイト」
Camel K コアプラットフォームトレイト
6.1. Camel K トレイトおよびプロファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
ここでは、実行時に 高度な Camel K 機能を設定するために使用される トレイト および プロファイル の重要な Camel K の概念について説明します。
Camel K トレイト
Camel K トレイトは高度な機能およびコア機能で、Camel K インテグレーションをカスタマイズするためにコマンドラインで設定できます。たとえば、これには、3scale API Management、Quarkus、Knative、Prometheus などのテクノロジーとの対話を設定する 機能トレイト (feature trait) が含まれます。Camel K は、Camel サポート、コンテナー、依存関係の解決、JVM サポートなどの重要なコアプラットフォーム機能を設定する、内部のプラットフォームトレイト も提供します。
Camel K プロファイル
Camel K プロファイルは、Camel K インテグレーションが実行されるターゲットクラウドプラットフォームを定義します。サポートされるプロファイルは OpenShift および Knative プロファイルです。
OpenShift でインテグレーションを実行するときに、OpenShift Serverless がクラスターにインストールされている場合、Camel K は Knative プロファイルを使用します。OpenShift Serverless がインストールされていない場合、Camel K は OpenShift プロファイルを使用します。
kamel run --profile オプションを使用して、実行時にプロファイルを指定することもできます。
Camel K は、インテグレーションが実行されるターゲットプロファイルを考慮し、便利なデフォルトをすべてのトレイトに提供します。ただし、上級ユーザーはカスタム動作の Camel K トレイトを設定できます。一部のトレイトは、OpenShift や Knative などの特定のプロファイルにのみ適用されます。詳細は、各トレイトの説明にある利用可能なプロファイルを参照してください。
Camel K トレイトの設定
各 Camel トレイトには、コマンドラインでトレイトを設定するために使用する一意の ID があります。たとえば、以下のコマンドは、インテグレーションの OpenShift Service の作成を無効にします。
kamel run --trait service.enabled=false my-integration.yaml
kamel run --trait service.enabled=false my-integration.yaml
-t オプションを使用してトレイトを指定することもできます。
Camel K トレイトプロパティー
enabled プロパティーを使用すると、各トレイトを有効または無効にすることができます。すべてのトレイトには、ユーザーが明示的にアクティブ化しない場合に有効にする必要があるかどうかを判断する独自の内部ロジックがあります。
プラットフォームトレイトを無効にすると、プラットフォームの機能性が低下する可能性があります。
一部のトレイトには、環境に応じてトレイトの自動設定を有効または無効にするために使用する auto プロパティーがあります。たとえば、3scale、Cron、Knative などのトレイトが含まれます。この自動設定では、enabled プロパティーが明示的に設定されていない場合にトレイトを有効または無効にすることができ、トレイトの設定を変更することができます。
ほとんどのトレイトには、コマンドラインで設定できる追加のプロパティーがあります。詳細は、これ以降のセクションで各トレイトの説明を参照してください。
6.2. Camel K 機能トレイト リンクのコピーリンクがクリップボードにコピーされました!
6.2.1. Knative トレイト リンクのコピーリンクがクリップボードにコピーされました!
Knative トレイトは Knative リソースのアドレスを自動検出し、実行中のインテグレーションに注入します。
完全な Knative 設定は、JSON 形式の CAMEL_KNATIVE_CONFIGURATION に注入されます。その後、Camel Knative コンポーネントは完全な設定を使用してルートを設定します。
このトレイトは、Knative プロファイルがアクティブであるとデフォルトで有効になります。
このトレイトは、Knative プロファイルで利用できます。
6.2.1.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait knative.[key]=[value] --trait knative.[key2]=[value2] Integration.java
$ kamel run --trait knative.[key]=[value] --trait knative.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| Knative の完全な設定を JSON 形式で注入するために使用されます。 |
|
|
| インテグレーションルートのソースとして使用されるチャネルの一覧。簡単なチャネル名または完全な Camel URI を含めることができます。 |
|
|
| インテグレーションルートの宛先として使用されるチャネルの一覧。簡単なチャネル名または完全な Camel URI を含めることができます。 |
|
|
| インテグレーションルートのソースとして使用されるチャネルの一覧。 |
|
|
| インテグレーションルートの宛先として使用されるエンドポイントの一覧。簡単なエンドポイント名または完全な Camel URI を含めることができます。 |
|
|
| インテグレーションがサブスクライブされるイベントタイプのリスト。簡単なイベントタイプまたは完全な Camel URI を含めることができます (デフォルト以外の特定のブローカーを使用するため)。 |
|
|
| インテグレーションが生成するイベントタイプのリスト。簡単なイベントタイプまたは完全な Camel URI を含めることができます (特定のブローカーを使用するため)。 |
|
|
| ヘッダー「ce-knativehistory」を基にしてイベントのフィルターを有効にします。このヘッダーは新しいバージョンの Knative で削除されたため、フィルターはデフォルトで無効になっています。 |
|
|
| Knative SinkBinding リソース経由のインテグレーションからシンクへのバインドを許可します。これは、インテグレーションが単一のシンクをターゲットにする場合に使用できます。インテグレーションが単一のシンクをターゲットにする場合、デフォルトで有効になります (インテグレーションが Knative ソースによって所有されている場合を除く)。 |
|
|
| すべてのトレイトプロパティーの自動検出を有効にします。 |
6.2.2. Knative Service トレイト リンクのコピーリンクがクリップボードにコピーされました!
Knative Service トレイトは、標準の Kubernetes デプロイメントではなく、Knative サービスとしてインテグレーションを実行する場合に、オプションの設定を可能にします。
Knative Services としてインテグレーションを実行すると、自動スケーリング (およびゼロへのスケーリング) 機能が追加されますが、この機能はルートが HTTP エンドポイントコンシューマーを使用する場合にのみ有用です。
このトレイトは、Knative プロファイルで利用できます。
6.2.2.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait knative-service.[key]=[value] --trait knative-service.[key2]=[value2] Integration.java
$ kamel run --trait knative-service.[key]=[value] --trait knative-service.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
|
Knative 自動スケーリングクラスプロパティーを設定します (例: 詳細は、Knative ドキュメントを参照してください。 |
|
|
|
Knative 自動スケーリングメトリクスプロパティーを設定します (例: 詳細は、Knative ドキュメントを参照してください。 |
|
|
| 各 Pod に許可される同時実行レベルまたは CPU の割合 (自動スケーリングメトリクスによる) を設定します。 詳細は、Knative ドキュメントを参照してください。 |
|
|
| インテグレーションに対して稼働している必要がある Pod の最小数。デフォルトは ゼロ であるため、設定された期間に使用されなければインテグレーションはゼロにスケールダウンされます。 詳細は、Knative ドキュメントを参照してください。 |
|
|
| インテグレーションで並行して実行できる Pod 数の上限。Knative には、インストールによって異なる独自の上限値があります。 詳細は、Knative ドキュメントを参照してください。 |
|
|
| 以下のすべての条件が保持されると、インテグレーションを Knative サービスとして自動的にデプロイします。
|
6.2.3. Prometheus トレイト リンクのコピーリンクがクリップボードにコピーされました!
Prometheus トレイトは、Prometheus と互換性のあるエンドポイントを設定します。Prometheus Operator の使用時にエンドポイントを自動的にスクレイプできるように、PodMonitor リソースも作成します。
メトリクスは MicroProfile Metrics を使用して公開されます。
PodMonitor リソースを作成するには、Prometheus Operator のカスタムリソース定義をインストールする必要があります。Prometheus トレイトが Prometheus Operator なしで機能するように、pod-monitor を false に設定することができます。
Prometheus トレイトはデフォルトで無効になっています。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
6.2.3.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait prometheus.[key]=[value] --trait prometheus.[key2]=[value2] Integration.java
$ kamel run --trait prometheus.[key]=[value] --trait prometheus.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
|
|
|
|
|
|
6.2.4. Pdb トレイト リンクのコピーリンクがクリップボードにコピーされました!
PDB トレイトを使用すると、インテグレーション Pod の PodDisruptionBudget リソースを設定することができます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
6.2.4.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait pdb.[key]=[value] --trait pdb.[key2]=[value2] Integration.java
$ kamel run --trait pdb.[key]=[value] --trait pdb.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
|
エビクション後も引き続き利用可能である必要があるインテグレーションの Pod 数。絶対数またはパーセンテージのいずれかで指定できます。 |
|
|
|
エビクション後に、利用不可能であっても許容されるインテグレーションの Pod 数。絶対数またはパーセンテージのいずれかで指定できます ( |
6.2.5. Pull Secret トレイト リンクのコピーリンクがクリップボードにコピーされました!
Pull Secret トレイトは Pod にプルシークレットを設定し、Kubernetes が外部レジストリーからコンテナーイメージを取得できるようにします。
プルシークレットは手動で指定するか、IntegrationPlatform で外部コンテナーレジストリーに対する認証を設定している場合には、イメージをプルするのに同じシークレットを使用します。
デフォルトでは、外部コンテナーレジストリーの認証を設定する際に常に有効になっているので、外部レジストリーがプライベートであることを前提としています。
イメージをプルするためにレジストリーで認証が必要ない場合は、この特性を無効にすることができます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
6.2.5.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait pull-secret.[key]=[value] --trait pull-secret.[key2]=[value2] Integration.java
$ kamel run --trait pull-secret.[key]=[value] --trait pull-secret.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
|
Pod に設定されるプルシークレット名。空のままにすると、自動的に |
|
|
|
共有プラットフォームでグローバル Operator を使用する場合は、Operator namespace 上の |
|
|
|
タイプが |
6.2.6. Route トレイト リンクのコピーリンクがクリップボードにコピーされました!
Route トレイトを使用すると、インテグレーションの OpenShift ルートの作成を設定できます。
このトレイトは、OpenShift のプロファイルで利用できます。
6.2.6.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait route.[key]=[value] --trait route.[key2]=[value2] Integration.java
$ kamel run --trait route.[key]=[value] --trait route.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| ルートによって公開されるホストを設定します。 |
|
|
|
詳細は、OpenShift ドキュメントを参照してください。 |
|
|
| TLS 証明書の内容。 詳細は、OpenShift ドキュメントを参照してください。 |
|
|
| TLS 証明書キーの内容。 詳細は、OpenShift ドキュメントを参照してください。 |
|
|
| TLS 認証局の証明書の内容。 詳細は、OpenShift ドキュメントを参照してください。 |
|
|
| 宛先 CA 証明書は、最終宛先の CA 証明書の内容を提供します。reencrypt の停止を使用する場合、ルーターがセキュアな接続のヘルスチェックに使用するためにこのファイルを提供する必要があります。このフィールドが指定されていない場合、ルーターは独自の宛先 CA を提供し、短いサービス名 (service.namespace.svc) を使用してホスト名の検証を実行する可能性があります。これにより、インフラストラクチャーが生成した証明書を自動的に検証できます。 詳細は、OpenShift ドキュメントを参照してください。 |
|
|
|
セキュアでないトラフィック ( 詳細は、OpenShift ドキュメントを参照してください。 |
6.2.7. Service トレイト リンクのコピーリンクがクリップボードにコピーされました!
サービストレイトは、Service リソースとのインテグレーションを公開し、同じ namespace の他のアプリケーション (またはインテグレーション) からアクセスできるようにします。
インテグレーションが HTTP エンドポイントを公開できる Camel コンポーネントに依存する場合は、デフォルトで有効になっています。
このトレイトは Kubernetes および OpenShift プロファイルで利用できます。
6.2.7.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait service.[key]=[value] --trait service.[key2]=[value2] Integration.java
$ kamel run --trait service.[key]=[value] --trait service.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| サービスを作成する必要がある場合にコードから自動検出されます。 |
|
|
| Service が NodePort として公開できるようにします。 |
6.3. Camel K プラットフォームトレイト リンクのコピーリンクがクリップボードにコピーされました!
6.3.1. Builder トレイト リンクのコピーリンクがクリップボードにコピーされました!
Builder トレイトは、IntegrationKits を構築および設定するために最適なストラテジーを決定するために内部で使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Builder トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.1.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait builder.[key]=[value] --trait builder.[key2]=[value2] Integration.java
$ kamel run --trait builder.[key]=[value] --trait builder.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| サポートするビルドコンポーネント (OpenShift ビルド Pod など) で詳細なロギングを有効にします。Kaniko および Buildah はサポートされません。 |
|
|
| ビルドタスクに提供されるプロパティー一覧 |
6.3.2. Container トレイト リンクのコピーリンクがクリップボードにコピーされました!
Container トレイトを使用すると、インテグレーションが実行されるコンテナーのプロパティーを設定できます。
また、コンテナーに関連付けられたサービスの設定も提供します。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Container トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.2.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait container.[key]=[value] --trait container.[key2]=[value2] Integration.java
$ kamel run --trait container.[key]=[value] --trait container.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| |
|
|
| 必要な CPU の最小量。 |
|
|
| 必要なメモリーの最小容量。 |
|
|
| 必要な CPU の最大量。 |
|
|
| 必要なメモリーの最大容量。 |
|
|
| kubernetes サービス経由の公開を有効または無効にするために使用できます。 |
|
|
|
コンテナーによって公開される別のポートを設定します (デフォルトは |
|
|
|
コンテナーによって公開されるポートに異なるポート名を設定します (デフォルトは |
|
|
|
コンテナーポートを公開するサービスポートを設定します (デフォルト |
|
|
|
コンテナーポートを公開するサービスポート名を設定します (デフォルト |
|
|
|
メインのコンテナー名。デフォルトで付けられる名前は |
|
|
| 主なコンテナーイメージ |
|
|
|
コンテナーのプローブで ProbesEnabled を有効/無効にします (デフォルトは |
|
|
| コンテナーが起動してから liveness プローブが開始されるまでの秒数。 |
|
|
| プローブがタイムアウトするまでの秒数。liveness プローブに適用されます。 |
|
|
| プローブを実行する頻度。liveness プローブに適用されます。 |
|
|
| プローブの失敗後、正常とみなされるための最小の連続成功回数。liveness プローブに適用されます。 |
|
|
| プローブの正常実行後、失敗とみなされるための最小連続失敗回数。liveness プローブに適用されます。 |
|
|
| コンテナーが起動してから readiness プローブが開始されるまでの秒数。 |
|
|
| プローブがタイムアウトするまでの秒数。readiness プローブに適用されます。 |
|
|
| プローブを実行する頻度。readiness プローブに適用されます。 |
|
|
| プローブの失敗後、正常とみなされるための最小の連続成功回数。readiness プローブに適用されます。 |
|
|
| プローブの正常実行後、失敗とみなされるための最小連続失敗回数。readiness プローブに適用されます。 |
6.3.3. Camel トレイト リンクのコピーリンクがクリップボードにコピーされました!
Camel トレイトを使用すると Apache Camel K ランタイムおよび関連ライブラリーのバージョンを設定できますが、無効にすることはできません。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Camel トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.3.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait camel.[key]=[value] --trait camel.[key2]=[value2] Integration.java
$ kamel run --trait camel.[key]=[value] --trait camel.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
6.3.4. Dependencies トレイト リンクのコピーリンクがクリップボードにコピーされました!
Dependencies トレイトは、ユーザーが実行するインテグレーションに基づいてランタイムの依存関係を自動的に追加するために内部で使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Dependencies トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.4.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait dependencies.[key]=[value] Integration.java
$ kamel run --trait dependencies.[key]=[value] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
6.3.5. Deployer トレイト リンクのコピーリンクがクリップボードにコピーされました!
Deployer トレイトを使用すると、インテグレーションをデプロイする高レベルのリソースの種類を明示的に選択できます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Deployer トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.5.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait deployer.[key]=[value] --trait deployer.[key2]=[value2] Integration.java
$ kamel run --trait deployer.[key]=[value] --trait deployer.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
|
インテグレーションを実行するリソースを作成する際に、 |
6.3.6. Deployment トレイト リンクのコピーリンクがクリップボードにコピーされました!
Deployment トレイトは、インテグレーションがクラスターで実行されるようにする Kubernetes デプロイメントを生成します。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Deployment トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.6.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait deployment.[key]=[value] Integration.java
$ kamel run --trait deployment.[key]=[value] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
6.3.7. Environment トレイト リンクのコピーリンクがクリップボードにコピーされました!
Environment トレイトは、NAMESPACE、POD_NAME などのインテグレーションコンテナーに標準の環境変数を注入するために内部で使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Environment トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.7.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait environment.[key]=[value] --trait environment.[key2]=[value2] Integration.java
$ kamel run --trait environment.[key]=[value] --trait environment.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
|
|
6.3.8. Error Handler トレイト リンクのコピーリンクがクリップボードにコピーされました!
error-handler は、Error Handler ソースをインテグレーションランタイムに注入するのに使用されるプラットフォームトレイトです。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
error-handler トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.8.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait error-handler.[key]=[value] --trait error-handler.[key2]=[value2] Integration.java
$ kamel run --trait error-handler.[key]=[value] --trait error-handler.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| 指定された、またはアプリケーションプロパティーで見つかったエラーハンドラー参照名 |
6.3.9. JVM トレイト リンクのコピーリンクがクリップボードにコピーされました!
JVM トレイトは、インテグレーションを実行する JVM の設定に使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
JVM トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.9.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait jvm.[key]=[value] --trait jvm.[key2]=[value2] Integration.java
$ kamel run --trait jvm.[key]=[value] --trait jvm.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| リモートデバッグをアクティベートし、たとえばポート転送を使用して、デバッガーを JVM に接続できるようにします。 |
|
|
| メインクラスがロードされる直前にターゲット JVM を一時停止します。 |
|
|
|
コンテナーログに JVM の開始に使用されるコマンドを出力します (デフォルト |
|
|
|
新たに起動された JVM をリッスンするトランスポートアドレス (デフォルト |
|
|
| JVM オプションの一覧 |
|
|
|
追加の JVM クラスパス ( |
6.3.9.2. 例 リンクのコピーリンクがクリップボードにコピーされました!
Integrationに追加のクラスパスを含めます。kamel run -t jvm.classpath=/path/to/my-dependency.jar:/path/to/another-dependency.jar ...
$ kamel run -t jvm.classpath=/path/to/my-dependency.jar:/path/to/another-dependency.jar ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.10. Kamelets トレイト リンクのコピーリンクがクリップボードにコピーされました!
kamelets トレイトは、Kamelets をインテグレーションランタイムに注入するのに使用されるプラットフォームトレイトです。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
kamelets トレイトは プラットフォームトレイト です。無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.10.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait kamelets.[key]=[value] --trait kamelets.[key2]=[value2] Integration.java
$ kamel run --trait kamelets.[key]=[value] --trait kamelets.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| 参照される Kamelets とそのデフォルト設定を自動的に注入します (デフォルトで有効です)。 |
|
|
| 現在のインテグレーションにロードする Kamelet 名のコンマ区切りリスト |
6.3.11. Openapi トレイト リンクのコピーリンクがクリップボードにコピーされました!
OpenAPI DSL トレイトは、OpenAPI 仕様からインテグレーションを作成できるように内部で使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
openapi トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.11.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait openapi.[key]=[value] Integration.java
$ kamel run --trait openapi.[key]=[value] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
6.3.12. Owner トレイト リンクのコピーリンクがクリップボードにコピーされました!
Owner トレイトは、作成されたすべてのリソースが作成されたインテグレーションに属すようにし、インテグレーションのアノテーションおよびラベルをこれらの所有されたリソースに転送します。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Owner トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.12.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait owner.[key]=[value] --trait owner.[key2]=[value2] Integration.java
$ kamel run --trait owner.[key]=[value] --trait owner.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| 転送するアノテーションのセット |
|
|
| 転送するラベルのセット |
6.3.13. プラットフォームトレイト リンクのコピーリンクがクリップボードにコピーされました!
プラットフォームトレイトは、インテグレーションプラットフォームをインテグレーションに割り当てるために使用されるベーストレイトです。
プラットフォームが見つからない場合、トレイトはデフォルトのプラットフォームを作成できます。この機能は、プラットフォームにカスタム設定が必要ない場合に便利です (例: 組み込みのコンテナーイメージレジストリーがあるため OpenShift ではデフォルトの設定が動作します)。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
プラットフォームトレイト を無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.13.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait platform.[key]=[value] --trait platform.[key2]=[value2] Integration.java
$ kamel run --trait platform.[key]=[value] --trait platform.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
| プラットフォームがない場合にデフォルトのプラットフォーム (空のプラットフォーム) を作成します。 |
|
|
| グローバル Operator の場合、プラットフォームがグローバルに作成されるかどうかを示します (デフォルトは true です)。 |
|
|
| デフォルトのプラットフォームを作成できる場合に環境から自動検出します (OpenShift のみで作成)。 |
6.3.14. Quarkus トレイト リンクのコピーリンクがクリップボードにコピーされました!
Quarkus トレイトにより、Quarkus ランタイムがアクティベートされます。
これはデフォルトで有効になっています。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
quarkus トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.14.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait quarkus.[key]=[value] --trait quarkus.[key2]=[value2] Integration.java
$ kamel run --trait quarkus.[key]=[value] --trait quarkus.[key2]=[value2] Integration.java
以下の設定オプションを使用できます。
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
6.3.14.2. サポートされる Camel コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Quarkus が有効な状態で実行する場合、Camel K は Camel Quarkus エクステンションとして利用できる Camel コンポーネントのみをサポートします。エクステンションの一覧は、Camel Quarkus ドキュメント を参照してください。
第7章 Camel K コマンドリファレンス リンクのコピーリンクがクリップボードにコピーされました!
本章では、Camel K コマンドラインインターフェース (CLI) の参考情報と、kamel コマンドの使用例を紹介します。本章では、ランタイムで実行される Camel K インテグレーションソースファイルで指定できる Camel K モードラインオプションの参考情報も提供します。
本章には、以下が含まれます。
7.1. Camel K コマンドライン リンクのコピーリンクがクリップボードにコピーされました!
Camel K CLI は、OpenShift で Camel K インテグレーションを実行するためのメインエントリーポイントとして kamel コマンドを提供します。
7.1.1. サポートされるコマンド リンクのコピーリンクがクリップボードにコピーされました!
以下のキーに注意してください。
| 記号 | 説明 |
|---|---|
| ✔ | サポート対象 |
| ❌ | サポートされないか、まだサポート対象ではない |
| 名前 | サポート対象 | 説明 | 例 |
|---|---|---|---|
|
| ✔ | インテグレーションフローの Kamelets などの Kubernetes リソースを、Knative チャネル、Kafka トピック、またはその他のエンドポイントにバインドします。 |
|
|
| ❌ | 補完スクリプトを生成します。 |
|
|
| ❌ | ローカルデバッガーを使用してリモートインテグレーションをデバッグします。 |
|
|
| ✔ | OpenShift にデプロイされたインテグレーションを削除します。 |
|
|
| ✔ |
Camel K リソースの詳細情報を取得します。これには、 |
|
|
| ✔ | OpenShift にデプロイされたインテグレーションのステータスを取得します。 |
|
|
| ✔ |
利用可能なコマンドの完全リストを取得します。詳細は、各コマンドのパラメーターとして |
|
|
| ✔ | Java または YAML に実装された空の Camel K ファイルを初期化します。 |
|
|
| ❌ | Kubernetes または OpenShift クラスターに Camel K をインストールします。 |
|
|
| ❌ | Integration Kit を設定します。 |
|
|
| ❌ | 一連の入力インテグレーションファイルのセットを指定して、インテグレーションアクションをローカルで実行します。 |
|
|
| ✔ | 実行中のインテグレーションのログを出力します。 |
|
|
| ✔ | 1 つ以上のインテグレーションの状態を消去すると再ビルドされます。 |
|
|
| ❌ | 現在の Camel K インストールをリセットします。 |
|
|
| ✔ | OpenShift でインテグレーションを実行します。 |
|
|
| ❌ | Kubernetes または OpenShift クラスターから Camel K をアンインストールします。 |
|
|
| ✔ | Camel-K クライアントバージョンを表示します。 |
|
その他のリソース
- 「Installing Camel K」を参照してください。
7.2. Camel K モードラインオプション リンクのコピーリンクがクリップボードにコピーされました!
Camel K モードラインを使用すると、たとえば kamel run MyIntegration.java を使用して、起動時に実行される Camel K インテグレーションソースファイルに設定オプションを入力できます。詳細は、「Running Camel K integrations using modeline」を参照してください。
kamel run コマンドで利用可能なすべてのオプションは、モードコマンドラインオプションとして指定できます。
以下の表は、最も一般的に使用されるモードラインオプションの一部を表しています。
| オプション | 説明 |
|---|---|
|
| ビルド時のプロパティーファイルを追加します。
構文: |
|
| Configmap、シークレット、またはファイルからのランタイム設定を追加します。
構文:
-
- |
|
| 外部ライブラリー (Maven 依存関係など) が含まれます。
例: |
|
|
インテグレーションコンテナーに環境変数を設定します。例: |
|
|
インテグレーションのラベルを追加します。例: |
|
|
インテグレーション名を追加します。例: |
|
|
OpenAPI v2 仕様を追加します。例: |
|
|
デプロイメントに使用する Camel K トレイトプロファイルを設定します。例: |
|
| ランタイムプロパティーファイルを追加します。
構文: |
|
| ConfigMap、シークレット、またはファイルからのランタイムリソースを追加します。
構文:
-
- |
|
|
トレイトで Camel K 機能またはコア機能を設定します。例: |