3.5.6.2.3. カスタムバインディング
odo link
は、カスタムバインディング情報をコンポーネントに挿入することのできるフラグ --map
を受け入れます。このようなバインディング情報は、コンポーネントにリンクしているリソースのマニフェストから取得されます。たとえば、バックエンドコンポーネントおよび PostgreSQL サービスのコンテキストでは、PostgreSQL サービスのマニフェスト postgrescluster.yaml
ファイルからの情報をバックエンドコンポーネントに注入することができます。
PostgresCluster
サービスの名前が hippo
(または PostgresCluster サービスの名前が異なる場合は odo service list
の出力) の場合、その YAML 定義から postgresVersion
の値をバックエンドコンポーネントに挿入するときは、次のコマンドを実行します。
$ odo link PostgresCluster/hippo --map pgVersion='{{ .hippo.spec.postgresVersion }}'
Postgres サービスの名前が hippo
と異なる場合は、上記のコマンドで pgVersion
の値の .hippo
の代わりにそれを指定する必要があることに注意してください。
リンク操作後に、通常どおり odo push
を実行します。プッシュ操作が正常に完了すると、バックエンドコンポーネントディレクトリーから次のコマンドを実行して、カスタムマッピングが適切に挿入されたかどうかを検証できます。
$ odo exec -- env | grep pgVersion
出力例:
pgVersion=13
カスタムバインディング情報を複数挿入したい可能性があるため、odo link
は複数のキーと値のペアを受け入れます。唯一の制約は、これらを --map <key>=<value>
として指定する必要があるということです。たとえば、PostgreSQL イメージ情報をバージョンと共に注入する場合には、以下を実行できます。
$ odo link PostgresCluster/hippo --map pgVersion='{{ .hippo.spec.postgresVersion }}' --map pgImage='{{ .hippo.spec.image }}'
次に、odo push
を実行します。両方のマッピングが正しくインジェクトされたかどうかを確認するには、以下のコマンドを実行します。
$ odo exec -- env | grep -e "pgVersion\|pgImage"
出力例:
pgVersion=13 pgImage=registry.developers.crunchydata.com/crunchydata/crunchy-postgres-ha:centos8-13.4-0
3.5.6.2.3.1. インラインかどうか。
odo link
が kubernetes/
ディレクトリー下のリンクのマニフェストファイルを生成するデフォルトの動作を受け入れます。または、すべてを単一の devfile.yaml
ファイルに保存する場合は、-inlined
フラグを使用できます。