10.4. Fabric8 Karaf 機能の使用
Fabric8 は Apache Karaf のサポートを提供し、Kubernetes の OSGi アプリケーションの開発を容易にします。
Fabric8 の重要な機能を以下に示します。
- Blueprint XML ファイルでプレースホルダーを解決するさまざまなストラテジー。
- 環境変数
- システムプロパティー
- サービス
- Kubernetes の ConfigMap
- Kubernetes の Secret
- Kubernetes の設定マップを使用して、OSGi 設定管理を動的に更新します。
- OSGi サービスの Kubernetes ヘルスチェックを提供します。
10.4.1. Fabric8 Karaf 機能の追加 リンクのコピーリンクがクリップボードにコピーされました!
この機能を追加するには、fabric8-karaf-features
依存関係をプロジェクトの POM フィルに追加します。
手順
-
プロジェクトの
pom.xml
ファイルを開き、fabric8-karaf-features
依存関係を追加します。
Fabric8 Karaf 機能が Karaf サーバーにインストールされます。
10.4.2. Fabric8 Karaf Core バンドル機能の追加 リンクのコピーリンクがクリップボードにコピーされました!
fabric8-karaf-core
バンドルは、Blueprint および ConfigAdmin エクステンションによって使用される機能を提供します。
手順
プロジェクトの
pom.xml
ファイルを開き、fabric8-karaf-core
をstartupFeatures
セクションに追加します。<startupFeatures> ... <feature>fabric8-karaf-core</feature> ... </startupFeatures>
<startupFeatures> ... <feature>fabric8-karaf-core</feature> ... </startupFeatures>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
fabric8-karaf-core
機能がカスタム Karaf ディストリビューションに追加されます。
10.4.3. プロパティープレースホルダーサービスのオプション設定 リンクのコピーリンクがクリップボードにコピーされました!
fabric8-karaf-core
バンドルは、以下のインターフェイスで PlaceholderResolver
サービスをエクスポートします。
PlaceholderResolver
サービスは、異なるプロパティープレースホルダー解決ストラテジーのコレクターとして動作します。デフォルトで提供される解決ストラテジーのリストは 解決ストラテジー を参照してください。プロパティープレースホルダーサービスのオプションを設定するには、システムプロパティーと環境変数のどちらかか両方を使用します。
手順
OpenShift で ConfigMap にアクセスするには、サービスアカウントに view パーミッションが必要になります。view パーミッションをサービスアカウントに追加します。
oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - API 経由での Secret へのアクセスは制限されている可能性があるため、Secret を Pod にマウントします。
Secret は Pod ではボリュームマウントとして使用でき、以下のように secret という名前のディレクトリーにマップされます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.4. カスタムのプロパティープレースホルダーリゾルバーの追加 リンクのコピーリンクがクリップボードにコピーされました!
カスタムのプレースホルダーリゾルバーを追加して、カスタムの暗号化などの特定の必要項目をサポートできます。また、PlaceholderResolver
サービスを使用して、Blueprint および ConfigAdmin がリゾルバーを使用できるようにすることもできます。
手順
以下の mvn 依存関係をプロジェクトの
pom.xml
に追加します。pom.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PropertiesFunction インターフェイスを実装し、SCR を使用して OSGi サービスとして登録します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように、設定管理でリゾルバーを参照することができます。
properties
my.property = $[myResolver:value-to-resolve]
my.property = $[myResolver:value-to-resolve]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.5. 解決ストラテジーのリスト リンクのコピーリンクがクリップボードにコピーされました!
PlaceholderResolver
サービスは、異なるプロパティープレースホルダー解決ストラテジーのコレクターとして動作します。デフォルトで提供される解決ストラテジーを以下の表に示します。
- 解決ストラテジーのリスト
接頭辞 | 例 | 説明 |
|
| OS 環境変数からプロパティーを検索します。 |
sys |
| Java JVM システムプロパティーからプロパティーを検索します。 |
service |
| サービス命名規則を使用して、OS 環境変数からプロパティーを検索します。 |
|
| ホスト名の部分のみを返すサービス命名規則を使用して、OS 環境変数からプロパティーを検索します。 |
|
| ポートの部分のみを返すサービス命名規則を使用して、OS 環境変数からプロパティーを検索します。 |
|
| Kubernetes ConfigMap (API 経由) からプロパティーを検索します。 |
|
| Kubernetes の Secret (API またはボリュームマウント経由) からプロパティーを検索します。 |
10.4.6. プロパティープレースホルダーサービスのオプションリスト リンクのコピーリンクがクリップボードにコピーされました!
プロパティープレースホルダーサービスは以下のオプションをサポートします。
- プロパティープレースホルダーサービスのオプションリスト
名前 | デフォルト | 説明 |
---|---|---|
| $[ | プレースホルダーの接頭辞。 |
| ] | プレースホルダーの接尾辞。 |
| null | Secret がマップされたパスのコンマ区切りリスト。 |
| false | API 経由で Secret の消費を有効または無効にする。 |