Skip to content

TriggerMesh Installation

The TriggerMesh Cloud Native Integration Platform is composed of a set of APIs implemented as Kubernetes Custom Resource Definitions (CRDs) and a controller.

Installing TriggerMesh consists of:

  • Having a Kubernetes cluster up and running
  • Having the Knative project deployed in that cluster
  • Installing the TriggerMesh CRDs
  • Installing the TriggerMesh controller

These four steps are highlighted below. The first two steps (i.e Access to a Kubernetes cluster and installation of Knative are not described in details in this documentation). After completing those four steps you can validate your TriggerMesh installation.

Alternative Installation Options

You may also use the TriggerMesh AMI to test the platform in a AWS EC2 instance. You may also use our Helm Chart.

Pre-requisites

The Knative project is a dependency of TriggerMesh, install it using the instructions in the Knative documentation

  • A Kubernetes cluster version v1.22+
  • Knative v1.0.0+

If you are using VMware's Tanzu Community Edition, please refer to the Installation for Tanzu Community Edition.

Install the CRDs

All TriggerMersh APIs are implemented as Kubernetes CRDs, which we need to create before deploying the controller. The following kubectl apply command will create all of the CRDs.

kubectl apply -f https://github.com/triggermesh/triggermesh/releases/latest/download/triggermesh-crds.yaml

Install the controller

By default, the controller gets deployed in the triggermesh namespace. Deploy the controller with the following kubectl apply command:

kubectl apply -f https://github.com/triggermesh/triggermesh/releases/latest/download/triggermesh.yaml

Verifying the installation

Upon successful creation of the CRDs and successful deployment of the controller you should see two pods running in the triggermesh namespace

$ kubectl get pods -n triggermesh
NAME                                                   READY   STATUS    RESTARTS   AGE
triggermesh-controller-5cd97f4c8f-z6r2r                1/1     Running   0          57m
triggermesh-webhook-79cd8d6f5d-gf2lj                   1/1     Running   0          57m

All event sources and targets will be available to you as new API objects. For example, you can list all AWS related sources and targets with:

$ kubectl get crds |grep triggermesh |grep aws
awscloudwatchlogssources.sources.triggermesh.io         2021-10-06T09:01:27Z
awscloudwatchsources.sources.triggermesh.io             2021-10-06T09:01:27Z
awscodecommitsources.sources.triggermesh.io             2021-10-06T09:01:27Z
awscognitoidentitysources.sources.triggermesh.io        2021-10-06T09:01:27Z
awscognitouserpoolsources.sources.triggermesh.io        2021-10-06T09:01:27Z
awscomprehendtargets.targets.triggermesh.io             2021-10-06T09:01:28Z
awsdynamodbsources.sources.triggermesh.io               2021-10-06T09:01:28Z
awsdynamodbtargets.targets.triggermesh.io               2021-10-06T09:01:28Z
awseventbridgetargets.targets.triggermesh.io            2021-10-06T09:01:28Z
awskinesissources.sources.triggermesh.io                2021-10-06T09:01:28Z
awskinesistargets.targets.triggermesh.io                2021-10-06T09:01:29Z
awslambdatargets.targets.triggermesh.io                 2021-10-06T09:01:29Z
awsperformanceinsightssources.sources.triggermesh.io    2021-10-06T09:01:29Z
awss3sources.sources.triggermesh.io                     2021-10-06T09:01:29Z
awss3targets.targets.triggermesh.io                     2021-10-06T09:01:29Z
awssnssources.sources.triggermesh.io                    2021-10-06T09:01:30Z
awssnstargets.targets.triggermesh.io                    2021-10-06T09:01:30Z
awssqssources.sources.triggermesh.io                    2021-10-06T09:01:30Z
awssqstargets.targets.triggermesh.io                    2021-10-06T09:01:30Z

A handy way to start exploring the API is to use kubectl explain on a specific kind, for example the AWS SQS source like below:

$ kubectl explain awssqssources
KIND:     AWSSQSSource
VERSION:  sources.triggermesh.io/v1alpha1

DESCRIPTION:
     TriggerMesh event source for Amazon SQS.
FIELDS:
   apiVersion   <string>
     APIVersion defines the versioned schema of this representation of an
     object. Servers should convert recognized schemas to the latest internal
     value, and may reject unrecognized values. More info:
     https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

   kind <string>
     Kind is a string value representing the REST resource this object
     represents. Servers may infer this from the endpoint the client submits
     requests to. Cannot be updated. In CamelCase. More info:
     https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

   metadata <Object>
     Standard object's metadata. More info:
     https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

   spec <Object>
     Desired state of the event source.

   status   <Object>
     Reported status of the event source.