Menu Close

4.8.2. 高级绑定选项

高级绑定选项仅适用于 binding.operators.coreos.com API 组。

4.8.2.1. 在将绑定名称投射到工作负载前更改绑定名称

您可以指定规则,在 ServiceBinding 自定义资源(CR)的 .spec.namingStrategy 属性中更改绑定名称。例如,考虑连接到 PostgreSQL 数据库的 Spring PetClinic 示例应用。在本例中,PostgreSQL 数据库服务公开要用于绑定的数据库的主机和端口字段。Spring PetClinic 示例应用可通过绑定名称访问此公开的绑定数据。

示例: ServiceBinding CR 中的 Spring PetClinic 示例应用程序

...
    application:
      name: spring-petclinic-rest
      group: apps
      version: v1
      resource: deployments
...

示例: ServiceBinding CR 中的 PostgreSQL 数据库服务

...
    services:
    - group: postgres-operator.crunchydata.com
      version: v1beta1
      kind: PostgresCluster
      name: hippo
...

如果没有定义 namingStrategy,并且绑定名称被投射为环境变量,则后备服务中的 host: hippo-pgbouncer 值会出现,如下例所示:

示例

DATABASE_HOST: hippo-pgbouncer

其中:

数据库

指定 后端 服务。

HOST

指定绑定名称。

应用 POSTGRESQL_{{ .service.kind | 高级 }}_{{ .name | 高 }}_ENV 命名策略后,服务绑定请求准备的自定义绑定名称列表会出现如下例所示:

示例

POSTGRESQL_DATABASE_HOST_ENV: hippo-pgbouncer
POSTGRESQL_DATABASE_PORT_ENV: 5432

以下项目描述了 POSTGRESQL_{{ .service.kind | upper }}_{{ .name | }}_ENV 命名策略中定义的表达式:

  • .name :请参阅后备服务公开的绑定名称。在上例中,绑定名称为 HOSTPORT
  • .service.kind :请参阅其绑定名称通过命名策略更改的服务资源的类型。
  • top :字符串函数在编译 Go 模板字符串时用于在后处理字符串。
  • POSTGRESQL :自定义绑定名称的前缀。
  • ENV :自定义绑定名称的后缀。

与前面的示例类似,您可以在 namingStrategy 中定义字符串模板,以定义绑定名称的每个键都应该如何由服务绑定请求准备。