We use analytics and cookies to understand site traffic. Information about your use of our site is shared with Google for that purpose. Learn more.
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.
Target Audience
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:
- git
- golang
- make
- dep
- kubebuilder
- kustomize
- kubectl (optional)
- minikube (optional)
Steps
- Bootstrap Project
- Define The Source Resource
- Reconcile Sources
- Publish to Cluster
- (TODO) Dispatching Events
Alternatives
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.
- The Writing an event source from scratch tutorial.