Cleaning up sink docs (#3814)

* Cleaning up sink docs

* fix links and heading
This commit is contained in:
Ashleigh Brennan 2021-06-17 10:10:23 -05:00 committed by GitHub
parent 80399a94df
commit 4763c1715e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 55 additions and 64 deletions

View File

@ -1,4 +1,4 @@
# Event sinks # About sinks
When you create an event source, you can specify a _sink_ where events are sent to from the source. A sink is an Addressable resource that can receive incoming events from other resources. Knative Services, Channels, and Brokers are all examples of sinks. When you create an event source, you can specify a _sink_ where events are sent to from the source. A sink is an Addressable resource that can receive incoming events from other resources. Knative Services, Channels, and Brokers are all examples of sinks.
@ -25,6 +25,53 @@ Where;
- `<trigger-name>` is the name of the Trigger being connected to the sink. - `<trigger-name>` is the name of the Trigger being connected to the sink.
- `<kafka-sink-name>` is the name of a KafkaSink object. - `<kafka-sink-name>` is the name of a KafkaSink object.
## Sink as a parameter
Sink is used as a reference to an object that resolves to a URI to use as the sink.
A `sink` definition supports the following fields:
| Field | Description | Required or optional |
|-------|-------------|----------------------|
| `ref` | This points to an Addressable. | Required if _not_ using `uri` |
| `ref.apiVersion` | API version of the referent. | Required if using `ref` |
| [`ref.kind`][kubernetes-kinds] | Kind of the referent. | Required if using `ref` |
| [`ref.namespace`][kubernetes-namespaces] | Namespace of the referent. If omitted this defaults to the object holding it. | Optional |
| [`ref.name`][kubernetes-names] | Name of the referent. | Required if using `ref` |
| `uri` | This can be an absolute URL with a non-empty scheme and non-empty host that points to the target or a relative URI. Relative URIs are resolved using the base URI retrieved from Ref. | Required if _not_ using `ref` |
!!! note
At least one of `ref` or `uri` is required. If both are specified, `uri` is
resolved into the URL from the Addressable `ref` result.
### Sink parameter example
Given the following YAML, if `ref` resolves into
`"http://mysink.default.svc.cluster.local"`, then `uri` is added to this
resulting in `"http://mysink.default.svc.cluster.local/extra/path"`.
<!-- TODO we should have a page to point to describing the ref+uri destinations and the rules we use to resolve those and reuse the page. -->
```yaml
apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
name: bind-heartbeat
spec:
...
sink:
ref:
apiVersion: v1
kind: Service
namespace: default
name: mysink
uri: /extra/path
```
!!! contract
This results in the `K_SINK` environment variable being set on the `subject`
as `"http://mysink.default.svc.cluster.local/extra/path"`.
## Using custom resources as sinks ## Using custom resources as sinks
To use a Kubernetes custom resource (CR) as a sink for events, you must: To use a Kubernetes custom resource (CR) as a sink for events, you must:
@ -73,7 +120,7 @@ kn source binding create bind-heartbeat \
The `svc` in `http://event-display.svc.cluster.local` determines that the sink is a Knative Service. Other default sink prefixes include Channel and Broker. The `svc` in `http://event-display.svc.cluster.local` determines that the sink is a Knative Service. Other default sink prefixes include Channel and Broker.
!!! tip !!! tip
You can configure which resources can be used with the `--sink` flag for `kn` CLI commands by [Customizing kn](../../../../client/configure-kn/#customizing-kn). You can configure which resources can be used with the `--sink` flag for `kn` CLI commands by [Customizing kn](../../../../client/configure-kn/#example-configuration-file).
## Supported third-party sink types ## Supported third-party sink types

View File

@ -2,13 +2,11 @@
![API version v1](https://img.shields.io/badge/API_Version-v1-red?style=flat-square) ![API version v1](https://img.shields.io/badge/API_Version-v1-red?style=flat-square)
This topic provides reference information about the configurable fields for the This topic provides reference information about the configurable parameters for SinkBinding objects.
SinkBinding object.
## Supported parameters
## SinkBinding A `SinkBinding` resource supports the following parameters:
A `SinkBinding` definition supports the following fields:
| Field | Description | Required or optional | | Field | Description | Required or optional |
|-------|-------------|----------------------| |-------|-------------|----------------------|
@ -16,59 +14,10 @@ A `SinkBinding` definition supports the following fields:
| [`kind`][kubernetes-overview] | Identifies this resource object as a `SinkBinding` object. | Required | | [`kind`][kubernetes-overview] | Identifies this resource object as a `SinkBinding` object. | Required |
| [`metadata`][kubernetes-overview] | Specifies metadata that uniquely identifies the `SinkBinding` object. For example, a `name`. | Required | | [`metadata`][kubernetes-overview] | Specifies metadata that uniquely identifies the `SinkBinding` object. For example, a `name`. | Required |
| [`spec`][kubernetes-overview] | Specifies the configuration information for this `SinkBinding` object. | Required | | [`spec`][kubernetes-overview] | Specifies the configuration information for this `SinkBinding` object. | Required |
| [`spec.sink`](#sink-parameter) | A reference to an object that resolves to a URI to use as the sink. | Required | | [`spec.sink`](../../../../developer/eventing/sinks) | A reference to an object that resolves to a URI to use as the sink. | Required |
| [`spec.subject`](#subject-parameter) | A reference to the resources for which the "runtime contract" is augmented by Binding implementations. | Required | | [`spec.subject`](#subject-parameter) | A reference to the resources for which the "runtime contract" is augmented by Binding implementations. | Required |
| [`spec.ceOverrides`](#cloudevent-overrides) | Defines overrides to control the output format and modifications to the event sent to the sink. | Optional | | [`spec.ceOverrides`](#cloudevent-overrides) | Defines overrides to control the output format and modifications to the event sent to the sink. | Optional |
### Sink parameter
Sink is a reference to an object that resolves to a URI to use as the sink.
A `sink` definition supports the following fields:
| Field | Description | Required or optional |
|-------|-------------|----------------------|
| `ref` | This points to an Addressable. | Required if _not_ using `uri` |
| `ref.apiVersion` | API version of the referent. | Required if using `ref` |
| [`ref.kind`][kubernetes-kinds] | Kind of the referent. | Required if using `ref` |
| [`ref.namespace`][kubernetes-namespaces] | Namespace of the referent. If omitted this defaults to the object holding it. | Optional |
| [`ref.name`][kubernetes-names] | Name of the referent. | Required if using `ref` |
| `uri` | This can be an absolute URL with a non-empty scheme and non-empty host that points to the target or a relative URI. Relative URIs are resolved using the base URI retrieved from Ref. | Required if _not_ using `ref` |
!!! note
At least one of `ref` or `uri` is required. If both are specified, `uri` is
resolved into the URL from the Addressable `ref` result.
#### Example: Sink parameter
Given the following YAML, if `ref` resolves into
`"http://mysink.default.svc.cluster.local"`, then `uri` is added to this
resulting in `"http://mysink.default.svc.cluster.local/extra/path"`.
<!-- TODO we should have a page to point to describing the ref+uri destinations and the rules we use to resolve those and reuse the page. -->
```yaml
apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
name: bind-heartbeat
spec:
...
sink:
ref:
apiVersion: v1
kind: Service
namespace: default
name: mysink
uri: /extra/path
```
!!! contract
This results in the `K_SINK` environment variable being set on the `subject`
as `"http://mysink.default.svc.cluster.local/extra/path"`.
### Subject parameter ### Subject parameter
The Subject parameter references the resources for which the "runtime contract" The Subject parameter references the resources for which the "runtime contract"
@ -89,7 +38,7 @@ A `subject` definition supports the following fields:
| `selector.matchExpressions.values` | An array of string values. If `operator` is `In` or `NotIn`, the values array must be non-empty. If `operator` is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch. | Required if using `matchExpressions` | | `selector.matchExpressions.values` | An array of string values. If `operator` is `In` or `NotIn`, the values array must be non-empty. If `operator` is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch. | Required if using `matchExpressions` |
| `selector.matchLabels` | A map of key-value pairs. Each key-value pair in the `matchLabels` map is equivalent to an element of `matchExpressions`, where the key field is `matchLabels.<key>`, the `operator` is `In`, and the `values` array contains only "matchLabels.<value>". The requirements are ANDed. | Use one of `matchExpressions` or `matchLabels` | | `selector.matchLabels` | A map of key-value pairs. Each key-value pair in the `matchLabels` map is equivalent to an element of `matchExpressions`, where the key field is `matchLabels.<key>`, the `operator` is `In`, and the `values` array contains only "matchLabels.<value>". The requirements are ANDed. | Use one of `matchExpressions` or `matchLabels` |
#### Example: Subject parameter using name #### Subject parameter examples
Given the following YAML, the `Deployment` named `mysubject` in the `default` Given the following YAML, the `Deployment` named `mysubject` in the `default`
namespace is selected: namespace is selected:
@ -108,8 +57,6 @@ spec:
... ...
``` ```
#### Example: Subject parameter using matchLabels
Given the following YAML, any `Job` with the label `working=example` in the Given the following YAML, any `Job` with the label `working=example` in the
`default` namespace is selected: `default` namespace is selected:
@ -129,8 +76,6 @@ spec:
... ...
``` ```
#### Example: Subject parameter using matchExpression
Given the following YAML, any `Pod` with the label `working=example` OR Given the following YAML, any `Pod` with the label `working=example` OR
`working=sample` in the ` default` namespace is selected: `working=sample` in the ` default` namespace is selected:
@ -154,7 +99,6 @@ spec:
... ...
``` ```
### CloudEvent Overrides ### CloudEvent Overrides
CloudEvent Overrides defines overrides to control the output format and CloudEvent Overrides defines overrides to control the output format and
@ -172,7 +116,7 @@ A `ceOverrides` definition supports the following fields:
the extensions override configuration. For example, you can not modify the the extensions override configuration. For example, you can not modify the
`type` attribute. `type` attribute.
#### Example: CloudEvent Overrides #### CloudEvent Overrides example
```yaml ```yaml
apiVersion: sources.knative.dev/v1 apiVersion: sources.knative.dev/v1