mirror of https://github.com/knative/docs.git
revamp eventing sources page (#2680)
* WIP: revamp eventing sources page * various improvements * fix links * make sources a branch bundle and don't use readfile to include pingsource * fix links * changes after review
This commit is contained in:
parent
35e5cdb307
commit
a0f607359b
|
@ -1,86 +1,43 @@
|
|||
<!--
|
||||
This is a generated file and should not be changed manually. All changes should follow the
|
||||
procedure:
|
||||
An event source is a resource object that acts as a link between an event producer and an event _sink_. A sink can be a Knative Service, Channel, or Broker that receives events from an event source.
|
||||
|
||||
1. Update the information in [`sources.yaml`](./sources.yaml).
|
||||
This page provides an index of the available source resource types as well as
|
||||
links to their documentation.
|
||||
|
||||
2. Run the generator tool:
|
||||
```shell
|
||||
go run docs/eventing/sources/generator/main.go
|
||||
```
|
||||
-->
|
||||
## Knative Sources
|
||||
|
||||
Event Sources are Kubernetes Custom Resources which provide a mechanism for registering interest in
|
||||
a class of events from a particular software system. Since different event sources may be described
|
||||
by different Custom Resources, this page provides an index of the available source resource types as
|
||||
well as links to installation instructions.
|
||||
| Name | API Version | Maintainer | Description |
|
||||
| -- | -- | -- | -- |
|
||||
| [APIServerSource](https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha1/apiserver_types.go) | v1alpha2 | Knative | Brings Kubernetes API server events into Knative. |
|
||||
| [AWS SQS](https://github.com/knative/eventing-contrib/blob/master/awssqs/pkg/apis/sources/v1alpha1/aws_sqs_types.go) | v1alpha1 | Knative | Brings [AWS Simple Queue Service](https://aws.amazon.com/sqs/) messages into Knative. |
|
||||
| [Apache Camel](https://github.com/knative/eventing-contrib/blob/master/camel/source/pkg/apis/sources/v1alpha1/camelsource_types.go) | v1alpha1 | Knative | Allows to use [Apache Camel](https://github.com/apache/camel) components for pushing events into Knative. |
|
||||
| [Apache CouchDB](https://github.com/knative/eventing-contrib/blob/master/couchdb) | v1alpha1 | Knative | Brings [Apache CouchDB](https://couchdb.apache.org/) messages into Knative. |
|
||||
| [Apache Kafka](https://github.com/knative/eventing-contrib/blob/master/kafka/source/pkg/apis/sources/v1alpha1/kafka_types.go) | v1beta1 | Knative | Brings [Apache Kafka](https://kafka.apache.org/) messages into Knative. |
|
||||
| [Container Source](https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1beta1/container_types.go) | v1beta1 | Knative | Given a `spec.template` with at least a container image specified, ContainerSource will keep a `Pod` running with the specified image(s). `K_SINK` (destination address) and `KE_CE_OVERRIDES` (JSON CloudEvents attributes) environment variables are injected into the running image(s). It is used by multiple other Sources as underlying infrastructure. |
|
||||
| [GitHub](https://github.com/knative/eventing-contrib/blob/master/github/pkg/apis/sources/v1alpha1/githubsource_types.go) | v1alpha1 | Knative | Registers for events of the specified types on the specified GitHub organization/repository. Brings those events into Knative. |
|
||||
| [GitLab](https://github.com/knative/eventing-contrib/blob/master/gitlab/pkg/apis/sources/v1alpha1/gitlabsource_types.go) | v1alpha1 | Knative | Registers for events of the specified types on the specified GitLab repository. Brings those events into Knative. |
|
||||
| [Heartbeats](https://github.com/knative/eventing-contrib/tree/master/cmd/heartbeats) | N/A | Knative | Uses an in-memory timer to produce events at the specified interval. |
|
||||
| [PingSource](./pingsource.md) | v1alpha2 | Knative | Produces events with a fixed payload on a specified cron schedule. |
|
||||
| [SinkBinding](https://knative.dev/docs/eventing/samples/sinkbinding/) | v1alpha2 | Knative | SinkBinding provides a framework for injecting `K_SINK` (destination address) and `K_CE_OVERRIDES` (JSON cloudevents attributes) environment variables into any Kubernetes resource which has a `spec.template` that looks like a Pod (aka PodSpecable). |
|
||||
| [WebSocket](https://github.com/knative/eventing-contrib/tree/master/cmd/websocketsource) | N/A | Knative | Opens a WebSocket to the specified source and packages each received message as a Knative event. |
|
||||
|
||||
This is a non-exhaustive list of Event sources for Knative.
|
||||
## Third-Party Sources
|
||||
|
||||
|
||||
### Inclusion in this list is not an endorsement, nor does it imply any level of support.
|
||||
|
||||
|
||||
## Sources
|
||||
|
||||
These are sources that are installed as `CRD`s.
|
||||
|
||||
Name | Status | Support | Description
|
||||
--- | --- | --- | ---
|
||||
[AWS SQS](https://github.com/knative/eventing-contrib/blob/master/awssqs/pkg/apis/sources/v1alpha1/aws_sqs_types.go) | Proof of Concept | None | Brings [AWS Simple Queue Service](https://aws.amazon.com/sqs/) messages into Knative.
|
||||
[Apache Camel](https://github.com/knative/eventing-contrib/blob/master/camel/source/pkg/apis/sources/v1alpha1/camelsource_types.go) | Proof of Concept | None | Allows to use [Apache Camel](https://github.com/apache/camel) components for pushing events into Knative.
|
||||
[Apache CouchDB](https://github.com/knative/eventing-contrib/tree/{{< branch >}}/couchdb) | Active Development | None | Brings [Apache CouchDB](https://couchdb.apache.org/) messages into Knative.
|
||||
[Apache Kafka](https://github.com/knative/eventing-contrib/blob/master/kafka/source/pkg/apis/sources/v1alpha1/kafka_types.go) | Proof of Concept | None | Brings [Apache Kafka](https://kafka.apache.org/) messages into Knative.
|
||||
| Name | API Version | Maintainer | Description
|
||||
|--|--|--|--|
|
||||
[Auto Container Source](https://github.com/Harwayne/auto-container-source) | Proof of Concept | None | AutoContainerSource is a controller that allows the Source CRDs _without_ needing a controller. It notices CRDs with a specific label and starts controlling resources of that type. It utilizes Container Source as underlying infrastructure.
|
||||
[AWS CodeCommit](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscodecommitsource/README.md) | Supported | TriggerMesh | Registers for events of the specified types on the specified AWS CodeCommit repository. Brings those events into Knative.
|
||||
[AWS Cognito](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awscognitoidentitysource/README.md) | Supported | TriggerMesh | Registers for AWS Cognito events. Brings those events into Knative.
|
||||
[AWS DynamoDB](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awsdynamodbsource/README.md) | Supported | TriggerMesh | Registers for events of on the specified AWS DynamoDB table. Brings those events into Knative.
|
||||
[AWS Kinesis](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awskinesissource/README.md) | Supported | TriggerMesh | Registers for events on the specified AWS Kinesis stream. Brings those events into Knative.
|
||||
[AWS SNS](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssnssource) | Supported | TriggerMesh | Registers for events of the specified AWS SNS endpoint. Brings those events into Knative.
|
||||
[AWS SQS](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssqssource/README.md) | Supported | TriggerMesh | Registers for events of the specified AWS SQS queue. Brings those events into Knative.
|
||||
[BitBucket](https://github.com/nachocano/bitbucket-source) | Proof of Concept | None | Registers for events of the specified types on the specified BitBucket organization/repository. Brings those events into Knative.
|
||||
[CloudAuditLogsSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudauditlogssource/README.md) | Active Development | None | Registers for events of the specified types on the specified [Google Cloud Audit Logs](https://cloud.google.com/logging/docs/audit/). Brings those events into Knative.
|
||||
[CloudPubSubSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudpubsubsource/README.md) | Active Development | None | Brings [Cloud Pub/Sub](https://cloud.google.com/pubsub/) messages into Knative.
|
||||
[CloudSchedulerSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudschedulersource/README.md) | Active Development | None | Create, update, and delete [Google Cloud Scheduler](https://cloud.google.com/scheduler/) Jobs. When those jobs are triggered, receive the event inside Knative.
|
||||
[CloudStorageSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudstoragesource/README.md) | Active Development | None | Registers for events of the specified types on the specified [Google Cloud Storage](https://cloud.google.com/storage/) bucket and optional object prefix. Brings those events into Knative.
|
||||
[Cron Job](https://knative.dev/docs/eventing/migration/ping) | Replaced by PingSource | None | Deprecated, replace with [PingSource](https://knative.dev/docs/eventing/migration/ping) or a [CronJob using SinkBinding](https://knative.dev/docs/eventing/samples/sinkbinding/)
|
||||
[GitHub](https://github.com/knative/eventing-contrib/blob/master/github/pkg/apis/sources/v1alpha1/githubsource_types.go) | Proof of Concept | None | Registers for events of the specified types on the specified GitHub organization/repository. Brings those events into Knative.
|
||||
[GitLab](https://github.com/knative/eventing-contrib/blob/master/gitlab/pkg/apis/sources/v1alpha1/gitlabsource_types.go) | Proof of Concept | None | Registers for events of the specified types on the specified GitLab repository. Brings those events into Knative.
|
||||
[Kubernetes](https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha1/apiserver_types.go) | Active Development | Knative | Brings Kubernetes API server events into Knative.
|
||||
[Ping](https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha2/ping_types.go) | In development | None | Uses an in-memory timer to produce events with a fixed payload on a specified cron schedule.
|
||||
[VMware](https://github.com/vmware-tanzu/sources-for-knative/tree/{{< branch >}}/pkg/apis/source/v1alpha1/vspheresource_types.go) | Active Development | None | Brings [vSphere](https://www.vmware.com/products/vsphere.html) events into Knative.
|
||||
|
||||
|
||||
|
||||
## Meta Sources
|
||||
|
||||
These are not directly usable, but make writing a Source much easier.
|
||||
|
||||
Name | Status | Support | Description
|
||||
--- | --- | --- | ---
|
||||
[Auto Container Source](https://github.com/Harwayne/auto-container-source) | Proof of Concept | None | AutoContainerSource is a controller that allows the Source CRDs _without_ needing a controller. It notices CRDs with a specific label and starts controlling resources of that type. It utilizes Container Source as underlying infrastructure.
|
||||
[Container Source](https://knative.dev/docs/eventing/migration/sinkbinding) | Active Development | Knative | Given a `spec.template` with at least a container image specified, ContainerSource will keep a `Pod` running with the specified image(s). `K_SINK` (destination address) and `KE_CE_OVERRIDES` (JSON CloudEvents attributes) environment variables are injected into the running image(s). It is used by multiple other Sources as underlying infrastructure.
|
||||
[Sample Source](https://github.com/knative/sample-source) | Active Development | Knative | Used as reference implementation supporting [Writing an Event Source from Scratch tutorial](../samples/writing-receive-adapter-source).
|
||||
[SinkBinding](https://knative.dev/docs/eventing/samples/sinkbinding/) | Active Development | Knative | SinkBinding provides a framework for injecting `K_SINK` (destination address) and `K_CE_OVERRIDES` (JSON cloudevents attributes) environment variables into any Kubernetes resource which has a `spec.template` that looks like a Pod (aka PodSpecable).
|
||||
|
||||
|
||||
|
||||
### ContainerSource Containers
|
||||
|
||||
These are containers intended to be used with `ContainerSource`. See the docs [here](../samples/container-source/README.md).
|
||||
|
||||
Name | Status | Support | Description
|
||||
--- | --- | --- | ---
|
||||
[AWS CodeCommit](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscodecommitsource/README.md) | Supported | TriggerMesh | Registers for events of the specified types on the specified AWS CodeCommit repository. Brings those events into Knative.
|
||||
[AWS Cognito](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscognitosource/README.md) | Supported | TriggerMesh | Registers for AWS Cognito events. Brings those events into Knative.
|
||||
[AWS DynamoDB](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awsdynamodbsource/README.md) | Supported | TriggerMesh | Registers for events of on the specified AWS DynamoDB table. Brings those events into Knative.
|
||||
[AWS Kinesis](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awskinesissource/README.md) | Supported | TriggerMesh | Registers for events on the specified AWS Kinesis stream. Brings those events into Knative.
|
||||
[AWS SNS](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssnssource) | Supported | TriggerMesh | Registers for events of the specified AWS SNS endpoint. Brings those events into Knative.
|
||||
[AWS SQS](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssqssource/README.md) | Supported | TriggerMesh | Registers for events of the specified AWS SQS queue. Brings those events into Knative.
|
||||
[FTP / SFTP](https://github.com/vaikas-google/ftp) | Proof of concept | None | Watches for files being uploaded into a FTP/SFTP and generates events for those.
|
||||
[Heartbeat](https://github.com/Harwayne/auto-container-source/tree/master/heartbeat-source) | Proof of Concept | None | Uses an in-memory timer to produce events as the specified interval. Uses AutoContainerSource for underlying infrastructure.
|
||||
[Heartbeats](https://github.com/knative/eventing-contrib/tree/{{< branch >}}/cmd/heartbeats) | Proof of Concept | None | Uses an in-memory timer to produce events at the specified interval.
|
||||
[K8s](https://github.com/Harwayne/auto-container-source/tree/master/k8s-event-source) | Proof of Concept | None | Brings Kubernetes cluster events into Knative. Uses AutoContainerSource for underlying infrastructure.
|
||||
[WebSocket](https://github.com/knative/eventing-contrib/tree/{{< branch >}}/cmd/websocketsource) | Active Development | None | Opens a WebSocket to the specified source and packages each received message as a Knative event.
|
||||
|
||||
|
||||
### SinkBindings
|
||||
|
||||
These are containers intended to be used with `SinkBinding`. See the docs [here](../samples/sinkbinding/README.md).
|
||||
|
||||
Name | Status | Support | Description
|
||||
--- | --- | --- | ---
|
||||
[Konnek](https://konnek.github.io/docs/#/) | Active Development | None | Retrieves events from cloud platforms (like AWS and GCP) and transforms them into CloudEvents for consumption in Knative.
|
||||
[K8s](https://github.com/Harwayne/auto-container-source/tree/master/k8s-event-source) | Proof of Concept | None | Brings Kubernetes cluster events into Knative. Uses AutoContainerSource for underlying infrastructure.
|
||||
[VMware](https://github.com/vmware-tanzu/sources-for-knative/blob/master/pkg/apis/sources/v1alpha1/vspheresource_types.go) | Active Development | None | Brings [vSphere](https://www.vmware.com/products/vsphere.html) events into Knative.
|
||||
|
|
|
@ -1,69 +0,0 @@
|
|||
{{ "" }}
|
||||
|
||||
{{- /* This will be interpreted given a yamlSources object. */ -}}
|
||||
|
||||
{{- /* Ignore this next paragraph, it is only intended in the generated markdown, not here. */ -}}
|
||||
<!--
|
||||
This is a generated file and should not be changed manually. All changes should follow the
|
||||
procedure:
|
||||
|
||||
1. Update the information in [`sources.yaml`](./sources.yaml).
|
||||
|
||||
2. Run the generator tool:
|
||||
```shell
|
||||
go run docs/eventing/sources/generator/main.go
|
||||
```
|
||||
-->
|
||||
|
||||
Event Sources are Kubernetes Custom Resources which provide a mechanism for registering interest in
|
||||
a class of events from a particular software system. Since different event sources may be described
|
||||
by different Custom Resources, this page provides an index of the available source resource types as
|
||||
well as links to installation instructions.
|
||||
|
||||
This is a non-exhaustive list of Event sources for Knative.
|
||||
|
||||
|
||||
### Inclusion in this list is not an endorsement, nor does it imply any level of support.
|
||||
|
||||
|
||||
## Sources
|
||||
|
||||
These are sources that are installed as `CRD`s.
|
||||
|
||||
Name | Status | Support | Description
|
||||
--- | --- | --- | ---
|
||||
{{ range .Sources -}}
|
||||
[{{ .Name }}]({{ .Url }}) | {{ .Status }} | {{ .Support }} | {{ .Description }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
## Meta Sources
|
||||
|
||||
These are not directly usable, but make writing a Source much easier.
|
||||
|
||||
Name | Status | Support | Description
|
||||
--- | --- | --- | ---
|
||||
{{ range .MetaSources -}}
|
||||
[{{ .Name }}]({{ .Url }}) | {{ .Status }} | {{ .Support }} | {{ .Description }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
### ContainerSource Containers
|
||||
|
||||
These are containers intended to be used with `ContainerSource`. See the docs [here](../samples/container-source/README.md).
|
||||
|
||||
Name | Status | Support | Description
|
||||
--- | --- | --- | ---
|
||||
{{ range .Containers -}}
|
||||
[{{ .Name }}]({{ .Url }}) | {{ .Status }} | {{ .Support }} | {{ .Description }}
|
||||
{{- end }}
|
||||
|
||||
### SinkBindings
|
||||
|
||||
These are containers intended to be used with `SinkBinding`. See the docs [here](../samples/sinkbinding/README.md).
|
||||
|
||||
Name | Status | Support | Description
|
||||
--- | --- | --- | ---
|
||||
{{ range .SinkBindings -}}
|
||||
[{{ .Name }}]({{ .Url }}) | {{ .Status }} | {{ .Support }} | {{ .Description }}
|
||||
{{- end }}
|
|
@ -1,111 +0,0 @@
|
|||
/*
|
||||
Copyright 2019 The Knative Authors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"sort"
|
||||
"text/template"
|
||||
|
||||
yaml "gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
var (
|
||||
yamlFile = flag.String("yaml", "docs/eventing/sources/sources.yaml", "The YAML file to parse to generate the mark down.")
|
||||
templateFile = flag.String("template", "docs/eventing/sources/generator/ReadmeTemplate.gomd", "The template file to fill in.")
|
||||
mdFile = flag.String("md", "docs/eventing/sources/README.md", "The mark down file to write to. Any existing file will be overwritten.")
|
||||
)
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
yamlSources := parseYaml()
|
||||
tmpl := createTemplate()
|
||||
writeMarkdown(yamlSources, tmpl)
|
||||
}
|
||||
|
||||
func parseYaml() *yamlSources {
|
||||
fileBytes, err := ioutil.ReadFile(*yamlFile)
|
||||
if err != nil {
|
||||
log.Fatalf("Unable to read the YAML file '%s': %v", *yamlFile, err)
|
||||
}
|
||||
|
||||
sources := &yamlSources{}
|
||||
err = yaml.UnmarshalStrict(fileBytes, sources)
|
||||
if err != nil {
|
||||
log.Fatalf("Unable to unmarshal the YAML file '%s': %v", *yamlFile, err)
|
||||
}
|
||||
|
||||
// Sort the three lists.
|
||||
sortAlphabetically(sources.MetaSources)
|
||||
sortAlphabetically(sources.Sources)
|
||||
sortAlphabetically(sources.Containers)
|
||||
sortAlphabetically(sources.SinkBindings)
|
||||
|
||||
return sources
|
||||
}
|
||||
|
||||
func sortAlphabetically(slice []source) {
|
||||
sortByName := func(i, j int) bool {
|
||||
return slice[i].Name < slice[j].Name
|
||||
}
|
||||
sort.SliceStable(slice, sortByName)
|
||||
}
|
||||
|
||||
type yamlSources struct {
|
||||
MetaSources []source `yaml:"metaSources"`
|
||||
Sources []source `yaml:"sources"`
|
||||
Containers []source `yaml:"containers"`
|
||||
SinkBindings []source `yaml:"sinkBindings"`
|
||||
}
|
||||
|
||||
type source struct {
|
||||
Name string `yaml:"name"`
|
||||
Url string `yaml:"url"`
|
||||
Status string `yaml:"status"` // TODO Make this an enum.
|
||||
Support string `yaml:"support"`
|
||||
Description string `yaml:"description"`
|
||||
}
|
||||
|
||||
func createTemplate() *template.Template {
|
||||
fileBytes, err := ioutil.ReadFile(*templateFile)
|
||||
if err != nil {
|
||||
log.Fatalf("Unable to read the template file '%s': %v", *templateFile, err)
|
||||
}
|
||||
fileString := string(fileBytes)
|
||||
tmpl, err := template.New("markdown template").Parse(fileString)
|
||||
if err != nil {
|
||||
log.Fatalf("Unable to parse the template file '%s': %v", *templateFile, err)
|
||||
}
|
||||
return tmpl
|
||||
}
|
||||
|
||||
func writeMarkdown(yamlSources *yamlSources, tmpl *template.Template) {
|
||||
md, err := os.Create(*mdFile)
|
||||
if err != nil {
|
||||
log.Fatalf("Unable to create the markdown file '%s': %v", *mdFile, err)
|
||||
}
|
||||
defer md.Close()
|
||||
|
||||
err = tmpl.Execute(md, yamlSources)
|
||||
if err != nil {
|
||||
log.Fatalf("Unable to execute the template: %v", err)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,155 @@
|
|||
---
|
||||
title: "PingSource"
|
||||
linkTitle: "PingSource"
|
||||
weight: 31
|
||||
type: "docs"
|
||||
---
|
||||
|
||||

|
||||
|
||||
A PingSource produces events with a fixed payload on a specified cron schedule.
|
||||
|
||||
## Installation
|
||||
|
||||
The PingSource source type is enabled by default when you install Knative Eventing.
|
||||
|
||||
## Example
|
||||
|
||||
This example shows how to send an event every second to a Knative Service.
|
||||
|
||||
### Creating a namespace
|
||||
|
||||
Create a new namespace called `pingsource-example` by entering the following
|
||||
command:
|
||||
|
||||
```shell
|
||||
kubectl create namespace pingsource-example
|
||||
```
|
||||
|
||||
### Creating the event display service
|
||||
|
||||
In this step, you create one event consumer, `event-display` to verify that
|
||||
`PingSource` is properly working.
|
||||
|
||||
To deploy the `event-display` con sumer to your cluster, run the following
|
||||
command:
|
||||
|
||||
```shell
|
||||
kubectl -n pingsource-example apply -f - << EOF
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: event-display
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels: &labels
|
||||
app: event-display
|
||||
template:
|
||||
metadata:
|
||||
labels: *labels
|
||||
spec:
|
||||
containers:
|
||||
- name: event-display
|
||||
image: gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display
|
||||
|
||||
---
|
||||
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: event-display
|
||||
spec:
|
||||
selector:
|
||||
app: event-display
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
EOF
|
||||
```
|
||||
|
||||
### Creating the PingSource
|
||||
|
||||
You can now create the `PingSource` sending an event containing
|
||||
`{"message": "Hello world!"}` every second.
|
||||
|
||||
{{< tabs name="create-source" default="YAML" >}}
|
||||
{{% tab name="YAML" %}}
|
||||
|
||||
```shell
|
||||
kubectl create -n pingsource-example -f - <<EOF
|
||||
apiVersion: sources.knative.dev/v1alpha2
|
||||
kind: PingSource
|
||||
metadata:
|
||||
name: test-ping-source
|
||||
spec:
|
||||
schedule: "*/1 * * * *"
|
||||
jsonData: '{"message": "Hello world!"}'
|
||||
sink:
|
||||
ref:
|
||||
apiVersion: serving.knative.dev/v1
|
||||
kind: Service
|
||||
name: event-display
|
||||
EOF
|
||||
```
|
||||
|
||||
{{< /tab >}}
|
||||
|
||||
{{% tab name="kn" %}}
|
||||
|
||||
```shell
|
||||
kn source ping create test-ping-source \
|
||||
--namespace pingsource-example
|
||||
--schedule "*/1 * * * *" \
|
||||
--data '{"message": "Hello world!"}' \
|
||||
--sink http://event-display.svc.cluster.local
|
||||
```
|
||||
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
### Verify
|
||||
|
||||
View the logs for the `event-display` event consumer by
|
||||
entering the following command:
|
||||
|
||||
```shell
|
||||
kubectl -n pingsource-example logs -l app=event-display --tail=100
|
||||
```
|
||||
|
||||
This returns the `Attributes` and `Data` of the events that the PingSource sent to the `event-display` Service:
|
||||
|
||||
```shell
|
||||
☁️ cloudevents.Event
|
||||
Validation: valid
|
||||
Context Attributes,
|
||||
specversion: 1.0
|
||||
type: dev.knative.sources.ping
|
||||
source: /apis/v1/namespaces/default/pingsources/test-ping-source
|
||||
id: d8e761eb-30c7-49a3-a421-cd5895239f2d
|
||||
time: 2019-12-04T14:24:00.000702251Z
|
||||
datacontenttype: application/json
|
||||
Data,
|
||||
{
|
||||
"message": "Hello world!"
|
||||
}
|
||||
```
|
||||
|
||||
### Cleanup
|
||||
|
||||
Delete the `pingsource-example` namespace and all of its resources from your
|
||||
cluster by entering the following command:
|
||||
|
||||
```shell
|
||||
kubectl delete namespace pingsource-example
|
||||
```
|
||||
|
||||
## Reference Documentation
|
||||
|
||||
See the [PingSource specification](../../reference/eventing/eventing.md#sources.knative.dev/v1alpha2.PingSource).
|
||||
|
||||
## Contact
|
||||
|
||||
For any inquiries about this source, please reach out on to the
|
||||
[Knative users group](https://groups.google.com/forum/#!forum/knative-users).
|
|
@ -1,213 +0,0 @@
|
|||
# MetaSources are not intended to be used directly by a user. Rather they are to help make other
|
||||
# sources easy to write and maintain.
|
||||
metaSources:
|
||||
- name: SinkBinding
|
||||
url: https://knative.dev/docs/eventing/samples/sinkbinding/
|
||||
status: Active Development
|
||||
support: Knative
|
||||
description: >
|
||||
SinkBinding provides a framework for injecting `K_SINK` (destination address) and
|
||||
`K_CE_OVERRIDES` (JSON cloudevents attributes) environment variables into any Kubernetes
|
||||
resource which has a `spec.template` that looks like a Pod (aka PodSpecable).
|
||||
- name: Container Source
|
||||
url: https://knative.dev/docs/eventing/migration/sinkbinding
|
||||
status: Active Development
|
||||
support: Knative
|
||||
description: >
|
||||
Given a `spec.template` with at least a container image specified, ContainerSource will keep a `Pod`
|
||||
running with the specified image(s). `K_SINK` (destination address) and `KE_CE_OVERRIDES` (JSON
|
||||
CloudEvents attributes) environment variables are injected into the running image(s). It is used by multiple
|
||||
other Sources as underlying infrastructure.
|
||||
- name: Auto Container Source
|
||||
url: https://github.com/Harwayne/auto-container-source
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
AutoContainerSource is a controller that allows the Source CRDs _without_ needing a
|
||||
controller. It notices CRDs with a specific label and starts controlling resources of that
|
||||
type. It utilizes Container Source as underlying infrastructure.
|
||||
- name: Sample Source
|
||||
url: https://github.com/knative/sample-source
|
||||
status: Active Development
|
||||
support: Knative
|
||||
description: >
|
||||
Used as reference implementation supporting
|
||||
[Writing an Event Source from Scratch tutorial](../samples/writing-receive-adapter-source).
|
||||
|
||||
|
||||
# Sources are event sources that users can install and use directly.
|
||||
sources:
|
||||
- name: Apache Camel
|
||||
url: https://github.com/knative/eventing-contrib/blob/master/camel/source/pkg/apis/sources/v1alpha1/camelsource_types.go
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
Allows to use [Apache Camel](https://github.com/apache/camel) components for pushing events into Knative.
|
||||
- name: AWS SQS
|
||||
url: https://github.com/knative/eventing-contrib/blob/master/awssqs/pkg/apis/sources/v1alpha1/aws_sqs_types.go
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
Brings [AWS Simple Queue Service](https://aws.amazon.com/sqs/) messages into Knative.
|
||||
- name: Cron Job
|
||||
url: https://knative.dev/docs/eventing/migration/ping
|
||||
status: Replaced by PingSource
|
||||
support: None
|
||||
description: >
|
||||
Deprecated, replace with [PingSource](https://knative.dev/docs/eventing/migration/ping) or a [CronJob using SinkBinding](https://knative.dev/docs/eventing/samples/sinkbinding/)
|
||||
- name: Ping
|
||||
url: https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha2/ping_types.go
|
||||
status: In development
|
||||
support: None
|
||||
description: >
|
||||
Uses an in-memory timer to produce events with a fixed payload on a specified cron schedule.
|
||||
- name: CloudPubSubSource
|
||||
url: https://github.com/google/knative-gcp/blob/master/docs/examples/cloudpubsubsource/README.md
|
||||
status: Active Development
|
||||
support: None
|
||||
description: >
|
||||
Brings [Cloud Pub/Sub](https://cloud.google.com/pubsub/) messages into Knative.
|
||||
- name: CloudSchedulerSource
|
||||
url: https://github.com/google/knative-gcp/blob/master/docs/examples/cloudschedulersource/README.md
|
||||
status: Active Development
|
||||
support: None
|
||||
description: >
|
||||
Create, update, and delete [Google Cloud Scheduler](https://cloud.google.com/scheduler/) Jobs. When those jobs are triggered, receive the event inside Knative.
|
||||
- name: CloudStorageSource
|
||||
url: https://github.com/google/knative-gcp/blob/master/docs/examples/cloudstoragesource/README.md
|
||||
status: Active Development
|
||||
support: None
|
||||
description: >
|
||||
Registers for events of the specified types on the specified [Google Cloud Storage](https://cloud.google.com/storage/) bucket and optional object prefix. Brings those events into Knative.
|
||||
- name: CloudAuditLogsSource
|
||||
url: https://github.com/google/knative-gcp/blob/master/docs/examples/cloudauditlogssource/README.md
|
||||
status: Active Development
|
||||
support: None
|
||||
description: >
|
||||
Registers for events of the specified types on the specified [Google Cloud Audit Logs](https://cloud.google.com/logging/docs/audit/). Brings those events into Knative.
|
||||
- name: GitHub
|
||||
url: https://github.com/knative/eventing-contrib/blob/master/github/pkg/apis/sources/v1alpha1/githubsource_types.go
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
Registers for events of the specified types on the specified GitHub organization/repository.
|
||||
Brings those events into Knative.
|
||||
- name: GitLab
|
||||
url: https://github.com/knative/eventing-contrib/blob/master/gitlab/pkg/apis/sources/v1alpha1/gitlabsource_types.go
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
Registers for events of the specified types on the specified GitLab repository. Brings those
|
||||
events into Knative.
|
||||
- name: BitBucket
|
||||
url: https://github.com/nachocano/bitbucket-source
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
Registers for events of the specified types on the specified BitBucket organization/repository.
|
||||
Brings those events into Knative.
|
||||
- name: Kubernetes
|
||||
url: https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha1/apiserver_types.go
|
||||
status: Active Development
|
||||
support: Knative
|
||||
description: >
|
||||
Brings Kubernetes API server events into Knative.
|
||||
- name: Apache Kafka
|
||||
url: https://github.com/knative/eventing-contrib/blob/master/kafka/source/pkg/apis/sources/v1alpha1/kafka_types.go
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
Brings [Apache Kafka](https://kafka.apache.org/) messages into Knative.
|
||||
- name: Apache CouchDB
|
||||
url: https://github.com/knative/eventing-contrib/tree/{{< branch >}}/couchdb
|
||||
status: Active Development
|
||||
support: None
|
||||
description: >
|
||||
Brings [Apache CouchDB](https://couchdb.apache.org/) messages into Knative.
|
||||
- name: VMware
|
||||
url: https://github.com/vmware-tanzu/sources-for-knative/tree/{{< branch >}}/pkg/apis/source/v1alpha1/vspheresource_types.go
|
||||
status: Active Development
|
||||
support: None
|
||||
description: >
|
||||
Brings [vSphere](https://www.vmware.com/products/vsphere.html) events into Knative.
|
||||
|
||||
# These are containers intended to be used with ContainerSource, but are not CRDs.
|
||||
containers:
|
||||
- name: Heartbeats
|
||||
url: https://github.com/knative/eventing-contrib/tree/{{< branch >}}/cmd/heartbeats
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
Uses an in-memory timer to produce events at the specified interval.
|
||||
- name: WebSocket
|
||||
url: https://github.com/knative/eventing-contrib/tree/{{< branch >}}/cmd/websocketsource
|
||||
status: Active Development
|
||||
support: None
|
||||
description: >
|
||||
Opens a WebSocket to the specified source and packages each received message as a Knative
|
||||
event.
|
||||
- name: K8s
|
||||
url: https://github.com/Harwayne/auto-container-source/tree/master/k8s-event-source
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
Brings Kubernetes cluster events into Knative. Uses AutoContainerSource for underlying
|
||||
infrastructure.
|
||||
- name: Heartbeat
|
||||
url: https://github.com/Harwayne/auto-container-source/tree/master/heartbeat-source
|
||||
status: Proof of Concept
|
||||
support: None
|
||||
description: >
|
||||
Uses an in-memory timer to produce events as the specified interval. Uses AutoContainerSource
|
||||
for underlying infrastructure.
|
||||
- name: AWS CodeCommit
|
||||
url: https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscodecommitsource/README.md
|
||||
status: Supported
|
||||
support: TriggerMesh
|
||||
description: >
|
||||
Registers for events of the specified types on the specified AWS CodeCommit repository. Brings those events into Knative.
|
||||
- name: AWS Cognito
|
||||
url: https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscognitosource/README.md
|
||||
status: Supported
|
||||
support: TriggerMesh
|
||||
description: >
|
||||
Registers for AWS Cognito events. Brings those events into Knative.
|
||||
- name: AWS DynamoDB
|
||||
url: https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awsdynamodbsource/README.md
|
||||
status: Supported
|
||||
support: TriggerMesh
|
||||
description: >
|
||||
Registers for events of on the specified AWS DynamoDB table. Brings those events into Knative.
|
||||
- name: AWS Kinesis
|
||||
url: https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awskinesissource/README.md
|
||||
status: Supported
|
||||
support: TriggerMesh
|
||||
description: >
|
||||
Registers for events on the specified AWS Kinesis stream. Brings those events into Knative.
|
||||
- name: AWS SQS
|
||||
url: https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssqssource/README.md
|
||||
status: Supported
|
||||
support: TriggerMesh
|
||||
description: >
|
||||
Registers for events of the specified AWS SQS queue. Brings those events into Knative.
|
||||
- name: AWS SNS
|
||||
url: https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssnssource
|
||||
status: Supported
|
||||
support: TriggerMesh
|
||||
description: >
|
||||
Registers for events of the specified AWS SNS endpoint. Brings those events into Knative.
|
||||
- name: FTP / SFTP
|
||||
url: https://github.com/vaikas-google/ftp
|
||||
status: Proof of concept
|
||||
support: None
|
||||
description: >
|
||||
Watches for files being uploaded into a FTP/SFTP and generates events for those.
|
||||
|
||||
# These are intended to be used with SinkBinding, but are not CRDs.
|
||||
sinkBindings:
|
||||
- name: Konnek
|
||||
url: https://konnek.github.io/docs/#/
|
||||
status: Active Development
|
||||
support: None
|
||||
description: >
|
||||
Retrieves events from cloud platforms (like AWS and GCP) and transforms them into CloudEvents for consumption in Knative.
|
Loading…
Reference in New Issue