mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 21:46:22 +01:00
118 lines
2.9 KiB
Plaintext
118 lines
2.9 KiB
Plaintext
// Module included in the following assemblies:
|
|
//
|
|
// * /serverless/develop/serverless-custom-event-sources.adoc
|
|
|
|
:_content-type: REFERENCE
|
|
[id="serverless-containersource-reference_{context}"]
|
|
= Container source reference
|
|
|
|
You can use a container as an event source, by creating a `ContainerSource` object. You can configure multiple parameters when creating a `ContainerSource` object.
|
|
|
|
`ContainerSource` objects support the following fields:
|
|
|
|
[cols=3*,options="header"]
|
|
|===
|
|
|Field
|
|
|Description
|
|
|Required or optional
|
|
|
|
|`apiVersion`
|
|
|Specifies the API version, for example `sources.knative.dev/v1`.
|
|
|Required
|
|
|
|
|`kind`
|
|
|Identifies this resource object as a `ContainerSource` object.
|
|
|Required
|
|
|
|
|`metadata`
|
|
|Specifies metadata that uniquely identifies the `ContainerSource` object. For example, a `name`.
|
|
|Required
|
|
|
|
|`spec`
|
|
|Specifies the configuration information for this `ContainerSource` object.
|
|
|Required
|
|
|
|
|`spec.sink`
|
|
|A reference to an object that resolves to a URI to use as the sink.
|
|
|Required
|
|
|
|
|`spec.template`
|
|
|A `template` spec for the `ContainerSource` object.
|
|
|Required
|
|
|
|
|`spec.ceOverrides`
|
|
|Defines overrides to control the output format and modifications to the event sent to the sink.
|
|
|Optional
|
|
|
|
|===
|
|
|
|
.Template parameter example
|
|
[source,yaml]
|
|
----
|
|
apiVersion: sources.knative.dev/v1
|
|
kind: ContainerSource
|
|
metadata:
|
|
name: test-heartbeats
|
|
spec:
|
|
template:
|
|
spec:
|
|
containers:
|
|
- image: quay.io/openshift-knative/heartbeats:latest
|
|
name: heartbeats
|
|
args:
|
|
- --period=1
|
|
env:
|
|
- name: POD_NAME
|
|
value: "mypod"
|
|
- name: POD_NAMESPACE
|
|
value: "event-test"
|
|
...
|
|
----
|
|
|
|
[id="serverless-containersource-reference-cloudevent-overrides_{context}"]
|
|
== CloudEvent overrides
|
|
|
|
A `ceOverrides` definition provides overrides that control the CloudEvent's output format and modifications sent to the sink. You can configure multiple fields for the `ceOverrides` definition.
|
|
|
|
A `ceOverrides` definition supports the following fields:
|
|
|
|
[cols=3*,options="header"]
|
|
|===
|
|
|Field
|
|
|Description
|
|
|Required or optional
|
|
|
|
|`extensions`
|
|
|Specifies which attributes are added or overridden on the outbound event. Each `extensions` key-value pair is set independently on the event as an attribute extension.
|
|
|Optional
|
|
|
|
|===
|
|
|
|
[NOTE]
|
|
====
|
|
Only valid `CloudEvent` attribute names are allowed as extensions. You cannot set the spec defined attributes from the extensions override configuration. For example, you can not modify the `type` attribute.
|
|
====
|
|
|
|
.CloudEvent Overrides example
|
|
[source,yaml]
|
|
----
|
|
apiVersion: sources.knative.dev/v1
|
|
kind: ContainerSource
|
|
metadata:
|
|
name: test-heartbeats
|
|
spec:
|
|
...
|
|
ceOverrides:
|
|
extensions:
|
|
extra: this is an extra attribute
|
|
additional: 42
|
|
----
|
|
|
|
This sets the `K_CE_OVERRIDES` environment variable on the `subject`:
|
|
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }
|
|
----
|