This tutorial walks you through creating an event source for Knative Eventing "the hard way", without using helper objects like ContainerSource.
After completing through this tutorial, you'll have a basic working event source controller and dispatcher (TODO) based on the Kubebuilder framework.
Just want to see the code? The reference project is https://github.com/grantr/sample-source.
The target audience is already familiar with Kubernetes and Go development and wants to develop a new event source for use with Knative Eventing.
You'll need these tools installed:
- git
- golang
- make
- dep
- kubebuilder
- kustomize
- kubectl (optional)
- minikube (optional)
- Bootstrap Project
- Define The Source Resource
- Reconcile Sources
- Publish to Cluster
- Dispatching Events
Kubebuilder not your thing? Prefer the easy way? Check out these alternatives.
- ContainerSource is an easy way to turn any dispatcher container into an Event Source.
- Auto ContainerSource is an even easier way to turn any dispatcher container into an Event Source without writing any controller code. It requires Metacontroller.
- Metacontroller can be used to write controllers as webhooks in any language.
- The Cloud Scheduler source uses the standard Kubernetes Golang client library instead of Kubebuilder.