3.5.6.2.3. 自定义绑定
odo link
接受标记 --map
,它可以将自定义绑定信息注入组件。此类绑定信息将从您链接到您的组件的资源清单中获取。例如,在后端组件和 PostgreSQL 服务的上下文中,您可以将 PostgreSQL 服务的清单 postgrescluster.yaml
文件中的信息注入后端组件。
如果 PostgresCluster
服务的名称是 hippo
(或者 odo service list
的输出,如果您的 PostgresCluster 服务被命名),当您需要将 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
标志。