ContainerSource reference
This topic provides reference information about the configurable fields for the ContainerSource object.
ContainerSource
A ContainerSource definition supports the following fields:
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 in the shape of Deployment.spec.template to be used for this ContainerSource. | Required |
spec.ceOverrides | Defines overrides to control the output format and modifications to the event sent to the sink. | Optional |
Sink parameter
The sink
parameter 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 | Kind of the referent. | Required if using ref |
ref.name | Name of the referent. | Required if using ref |
ref.namespace | Namespace of the referent. If omitted this defaults to the object holding it. | Optional |
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"
.
apiVersion: sources.knative.dev/v1
kind: ContainerSource
metadata:
name: test-heartbeats
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 as "http://mysink.default.svc.cluster.local/extra/path"
.
Template parameter
This is a template
in the shape of Deployment.spec.template
to use for the ContainerSource. For more information, see the Kubernetes Documentation.
Example: template parameter
apiVersion: sources.knative.dev/v1
kind: ContainerSource
metadata:
name: test-heartbeats
spec:
template:
spec:
containers:
- image: gcr.io/[gcloud-project]/knative.dev/eventing/cmd/heartbeats
name: heartbeats
args:
- --period=1
env:
- name: POD_NAME
value: "mypod"
- name: POD_NAMESPACE
value: "event-test"
...
CloudEvent Overrides
CloudEvent Overrides defines overrides to control the output format and modifications of the event sent to the sink.
A ceOverrides
definition supports the following fields:
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.
Example: CloudEvent Overrides
apiVersion: sources.knative.dev/v1
kind: ContainerSource
metadata:
name: test-heartbeats
spec:
...
ceOverrides:
extensions:
extra: this is an extra attribute
additional: 42
Contract
This results in the K_CE_OVERRIDES
environment variable being set on the subject
as follows:
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }