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 @@
|
||||||
<!--
|
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.
|
||||||
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).
|
This page provides an index of the available source resource types as well as
|
||||||
|
links to their documentation.
|
||||||
|
|
||||||
2. Run the generator tool:
|
## Knative Sources
|
||||||
```shell
|
|
||||||
go run docs/eventing/sources/generator/main.go
|
|
||||||
```
|
|
||||||
-->
|
|
||||||
|
|
||||||
Event Sources are Kubernetes Custom Resources which provide a mechanism for registering interest in
|
| Name | API Version | Maintainer | Description |
|
||||||
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
|
| [APIServerSource](https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha1/apiserver_types.go) | v1alpha2 | Knative | Brings Kubernetes API server events into Knative. |
|
||||||
well as links to installation instructions.
|
| [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
|
||||||
|
|
||||||
|
| Name | API Version | Maintainer | Description
|
||||||
### Inclusion in this list is not an endorsement, nor does it imply any level of support.
|
|--|--|--|--|
|
||||||
|
[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.
|
||||||
## Sources
|
[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.
|
||||||
These are sources that are installed as `CRD`s.
|
[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.
|
||||||
Name | Status | Support | Description
|
[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.
|
||||||
--- | --- | --- | ---
|
|
||||||
[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.
|
|
||||||
[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.
|
[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.
|
[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.
|
[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.
|
[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.
|
[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.
|
[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.
|
[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.
|
[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