This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.7. バインディングデータのプロジェクション
本セクションでは、バインディングデータを使用する方法について説明します。
6.7.1. バインディングデータの使用
バッキングサービスがバインディングデータを公開した後、ワークロードがこのデータにアクセスして消費するには、バッキングサービスからワークロードにデータをプロジェクションする必要があります。サービスバインディング Operator は、以下のいずれかの方法でデータセットをワークロードに自動的にプロジェクションします。
- ファイルとして (デフォルト)。
- 
							環境変数として。(ServiceBindingリソースから.spec.bindAsFilesパラメーターを設定した後)。
6.7.2. ワークロードコンテナー内にバインディングデータをプロジェうションするディレクトリーパスの設定
					デフォルトでは、サービスバインディング Operator は、バインディングデータをファイルとしてワークロードリソースの特定のディレクトリーにマウントします。ワークロードが実行されるコンテナーで設定された SERVICE_BINDING_ROOT 環境変数を使用してディレクトリーパスを設定できます。
				
例: ファイルとしてマウントされるバインディングデータ
バインディングデータを環境変数として使用するには、環境変数の読み取りに使用できる任意のプログラミング言語の組み込み言語機能を使用します。
例: Python クライアントの使用
import os
username = os.getenv("USERNAME")
password = os.getenv("PASSWORD")
import os
username = os.getenv("USERNAME")
password = os.getenv("PASSWORD")バインディングデータのディレクトリー名を使用してバインディングデータを検索する場合
							Service Binding Operator は、ServiceBinding リソース名 (.metadata.name) をバインディングデータディレクトリー名として使用します。この仕様は、.spec.name フィールドを介してその名前をオーバーライドする方法も提供します。その結果、namespace に複数の ServiceBinding リソースがある場合、バインディングデータ名の競合が発生する可能性があります。ただし、Kubernetes でのボリュームマウントの性質上、バインディングデータディレクトリーには シークレット リソースの 1 つのみからの値が含まれます。
						
6.7.2.1. バインディングデータをファイルとしてプロジェクションするための最終パスの計算
以下の表は、ファイルが指定のディレクトリーにマウントされるときに、バインディクデータプロジェクションの最終パスを計算する方法に関する設定をまとめています。
| SERVICE_BINDING_ROOT | 最終パス | 
|---|---|
| 利用不可 | 
										 | 
| 
										 | 
										 | 
						1 つ前の表の <ServiceBinding_ResourceName> エントリーは、カスタムリソース (CR) の . metadata.name セクションで設定する ServiceBinding リソースの名前を指定します。
					
							デフォルトでは、展開されたファイルのアクセス許可は 0644 に設定されています。Service Binding Operator は、サービスが 0600 などの特定権限を想定する場合に問題を引き起こす Kubernetes のバグにより、特定の権限を設定できません。回避策として、ワークロードリソース内で実行されているプログラムまたはアプリケーションのコードを変更して、ファイルを /tmp ディレクトリーにコピーし、適切な権限を設定することができます。
						
						既存の SERVICE_BINDING_ROOT 環境変数内のバインディングデータにアクセスして使用するには、環境変数を読み取れる任意のプログラミング言語の組み込み言語機能を使用します。
					
例: Python クライアントの使用
						直前の例では、bindings_list 変数には、postgresql データベースサービスタイプのバインディングデータが含まれます。
					
6.7.3. バインディングデータのプロジェクション
ワークロード要件および環境に応じて、ファイルまたは環境変数としてバインディングデータをプロジェクションすることができます。
前提条件
- 以下の概念について理解しておく。 - ワークロードの環境および要件、指定のサービスと連携する方法。
- ワークロードリソースでのバインディングデータ消費量。
- デフォルトの方法でデータプロジェクションの最終パスを計算する方法の設定。
 
- バインディングデータがバッキングサービスから公開されている。
手順
- 
							ファイルとしてバインディングデータをプロジェクションするには、既存の SERVICE_BINDING_ROOT環境変数がワークロードが実行されるコンテナーで存在することを確認して、宛先フォルダーを決定します。
- 
							バインドデータを環境変数としてプロジェクションするには、カスタムリソース (CR) の ServiceBindingリソースから、.spec.bindAsFilesパラメーターの値をfalseに設定します。