Eventing Manager is a standard Kubernetes operator that observes the state of Eventing resources and reconciles their state according to the desired state. It uses Controllers, which provide a reconcile function responsible for synchronizing resources until the desired state is reached in the cluster.
This project is scaffolded using Kubebuilder, and all the Kubebuilder makefile
helpers mentioned here can be used.
You need a Kubernetes cluster to run against. You can use k3d to get a local cluster for testing, or run against a remote cluster.
Note
Your controller automatically uses the current context in your kubeconfig file, that is, whatever cluster kubectl cluster-info
shows.
-
To install the latest version of the Eventing Manager in your cluster, run:
kubectl apply -f https://github.com/kyma-project/eventing-manager/releases/latest/download/eventing-manager.yaml
-
To install the latest version of the default Eventing custom resource (CR) in your cluster, run:
kubectl apply -f https://github.com/kyma-project/eventing-manager/releases/latest/download/eventing-default-cr.yaml
-
Install the CRDs into the cluster:
make install
-
Run Eventing Manager. It runs in the foreground, so if you want to leave it running, switch to a new terminal.
make run
Note
You can also run this in one step with the command: make install run
.
Run the unit and integration tests:
make generate-and-test
-
Fix common lint issues:
make imports make fmt make lint
If you are editing the API definitions, generate the manifests such as CRs or CRDs:
make manifests
Note
Run make --help
for more information on all potential make
targets.
For more information, see the Kubebuilder documentation.
Build and push your image to the location specified by IMG
:
make docker-build docker-push IMG=<container-registry>/eventing-manager:<tag> # If using docker, <container-registry> is your username.
NOTE: For MacBook M1 devices, run:
make docker-buildx IMG=<container-registry>/eventing-manager:<tag>
You need a Kubernetes cluster to run against. You can use k3d to get a local cluster for testing, or run against a remote cluster.
Note
Your controller automatically uses the current context in your kubeconfig file, that is, whatever cluster kubectl cluster-info
shows.
-
Download Go packages:
go mod vendor && go mod tidy
-
Install the CRDs to the cluster:
make install
-
Build and push your image to the location specified by
IMG
:make docker-build docker-push IMG=<container-registry>/eventing-manager:<tag>
-
Deploy the
eventing-manager
controller to the cluster:make deploy IMG=<container-registry>/eventing-manager:<tag>
-
[Optional] Install
Eventing
Custom Resource:kubectl apply -f config/samples/default.yaml
-
For EventMesh backend, if the Kyma Kubernetes cluster is managed by Gardener, then the Eventing Manager reads the cluster public domain from the ConfigMap kube-system/shoot-info. Otherwise, set the spec.backend.config.domain to the cluster public domain in the
eventing
custom resource; for example:spec: backend: type: "EventMesh" config: domain: "example.domain.com" eventMeshSecret: "kyma-system/eventing-backend" eventTypePrefix: "sap.kyma.custom"
Undeploy Eventing Manager from the cluster:
make undeploy
To delete the CRDs from the cluster:
make uninstall
See CONTRIBUTING.md
See the License file