Writing an eventing source the hard way
This tutorial walks you through creating an event source for Knative Eventing "the hard way", without using helper objects like ContainerSource ( Go to ContainerSource sample to see how to create an event source using 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.
Before you begin
You'll need these tools installed:
- Bootstrap Project
- Define The Source Resource
- Reconcile Sources
- Publish to Cluster
- (TODO) 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.