SinkBinding 引用¶
此主题提供有关 SinkBinding 对象可配置参数的参考信息。
支持的参数¶
SinkBinding 资源支持以下参数
| 字段 | 描述 | 必需或可选 |
|---|---|---|
apiVersion |
指定 API 版本,例如 sources.knative.dev/v1。 |
必需 |
kind |
标识此资源对象为 SinkBinding 对象。 |
必需 |
metadata |
指定唯一标识 SinkBinding 对象的元数据。例如,name。 |
必需 |
spec |
指定此 SinkBinding 对象的配置信息。 |
必需 |
spec.sink |
引用一个对象,该对象解析为用作接收器的 URI。 | 必需 |
spec.subject |
对由 Binding 实现增强了“运行时契约”的资源引用。 | 必需 |
spec.ceOverrides |
定义覆盖,以控制发送到接收器的事件的输出格式和修改。 | 可选 |
Subject 参数¶
Subject 参数引用由 Binding 实现增强了“运行时契约”的资源。
subject 定义支持以下字段
| 字段 | 描述 | 必需或可选 |
|---|---|---|
apiVersion |
被引用对象的 API 版本。 | 必需 |
kind |
被引用对象的类型。 | 必需 |
namespace |
被引用资源的命名空间。如果省略,则默认为持有它的对象。 | 可选 |
名称 |
被引用对象的名称。 | 如果配置了 selector,请勿使用。 |
selector |
被引用资源的 selector。 |
如果配置了 name,请勿使用。 |
selector.matchExpressions |
标签选择器要求的列表。要求是 AND 关系。 | 使用 matchExpressions 或 matchLabels 中的一个 |
selector.matchExpressions.key |
选择器应用的标签键。 | 如果使用 matchExpressions,则为必需 |
selector.matchExpressions.operator |
表示键与一组值的关系。有效运算符是 In、NotIn、Exists 和 DoesNotExist。 |
如果使用 matchExpressions,则为必需 |
selector.matchExpressions.values |
字符串值数组。如果 operator 是 In 或 NotIn,则 values 数组必须非空。如果 operator 是 Exists 或 DoesNotExist,则 values 数组必须为空。在战略合并补丁期间,此数组将被替换。 |
如果使用 matchExpressions,则为必需 |
selector.matchLabels |
键值对的映射。matchLabels 映射中的每个键值对等效于 matchExpressions 的一个元素,其中键字段是 matchLabels.<key>,operator 是 In,并且 values 数组只包含“matchLabels”。 |
使用 matchExpressions 或 matchLabels 中的一个 |
Subject 参数示例¶
给定以下 YAML,将选择 default 命名空间中名为 mysubject 的 Deployment
apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
name: bind-heartbeat
spec:
subject:
apiVersion: apps/v1
kind: Deployment
namespace: default
name: mysubject
...
给定以下 YAML,将选择 default 命名空间中带有标签 working=example 的任何 Job
apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
name: bind-heartbeat
spec:
subject:
apiVersion: batch/v1
kind: Job
namespace: default
selector:
matchLabels:
working: example
...
给定以下 YAML,将选择 default 命名空间中带有标签 working=example 或 working=sample 的任何 Pod
apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
name: bind-heartbeat
spec:
subject:
apiVersion: v1
kind: Pod
namespace: default
selector:
- matchExpression:
key: working
operator: In
values:
- example
- sample
...
CloudEvent 覆盖¶
CloudEvent 覆盖定义了用于控制发送到接收器的事件的输出格式和修改的覆盖。
ceOverrides 定义支持以下字段
| 字段 | 描述 | 必需或可选 |
|---|---|---|
extensions |
指定哪些属性被添加到出站事件或被其覆盖。每个 extensions 键值对作为属性扩展独立地设置在事件上。 |
可选 |
注意
只允许使用有效的 CloudEvent 属性名称 作为扩展。您不能从扩展覆盖配置中设置规范定义的属性。例如,您不能修改 type 属性。
CloudEvent 覆盖示例¶
apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
name: bind-heartbeat
spec:
...
ceOverrides:
extensions:
extra: this is an extra attribute
additional: 42
契约
这将导致 K_CE_OVERRIDES 环境变量在 subject 上设置如下
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }