Host custom Connectors
This guide explains how to host your own Connectors developed with Connector SDK.
Prerequisites​
- Ensure you have to have a working Camunda cluster in SaaS or Self-Managed.
- Ensure you have a distribution version of your Connector in the form of "fat"
jar
file.
For the purpose of this guide, we will be using a generic Connector template
as a reference. Clone the repository, and execute mvn clean verify package
.
This will produce a file called target/connector-template-0.1.0-SNAPSHOT-with-dependencies.jar
. In this guide,
we will refer this file as connector.jar
.
Wiring your Connector with a Camunda cluster​
This approach is equivalent to the hybrid mode, except you don't need to override
existing Connectors and instead add a new one. You need to have a running Camunda cluster, and a pair
of Client ID
/Client Secret
with Zeebe
and Operate
scopes.
Learn more about how to obtain required credentials.
Run the following command:
docker run --rm --name=CustomConnectorInSaaS \
-v $PWD/connector.jar:/opt/app/connector.jar \
-e ZEEBE_CLIENT_SECURITY_PLAINTEXT=false \
-e ZEEBE_CLIENT_CLOUD_CLUSTER-ID='<YOUR_CLUSTER_ID>' \
-e ZEEBE_CLIENT_CLOUD_CLIENT-ID='<YOUR_CLIENT_ID>' \
-e ZEEBE_CLIENT_CLOUD_CLIENT-SECRET='<YOUR_CLIENT_SECRET>' \
-e ZEEBE_CLIENT_CLOUD_REGION='<YOUR_CLUSTER_REGION>' \
-e CAMUNDA_OPERATE_CLIENT_URL='https://<region>.operate.camunda.io/<cluster-id>' \
camunda/connectors-bundle:<desired-version>
The line -v $PWD/connector.jar:/opt/app/connector.jar
binds a volume with your Connector at the path $PWD/connector.jar
of you local machine.
Wiring your Connector with Camunda Docker instance (without Keycloak)​
This option is applicable if you launch your cluster in a Self-Managed version with Camunda Docker Compose variant without Keycloak.
Run the following command:
docker run --rm --name=CustomConnectorInSMCore \
-v $PWD/connector.jar:/opt/app/connector.jar \
--network=camunda-platform_camunda-platform \
-e ZEEBE_CLIENT_BROKER_GATEWAY-ADDRESS=zeebe:26500 \
-e ZEEBE_CLIENT_SECURITY_PLAINTEXT=true \
-e CAMUNDA_OPERATE_CLIENT_URL=http://operate:8080 \
-e CAMUNDA_OPERATE_CLIENT_USERNAME=demo \
-e CAMUNDA_OPERATE_CLIENT_PASSWORD=demo \
camunda/connectors-bundle:<desired-version>
Exact values of the environment variables related to Zeebe, Operate, or network may depend on your own configuration.
Wiring your Connector with Camunda Docker instance (with Keycloak)​
This option is applicable if you launch your cluster in a Self-Managed version with Camunda Docker Compose variant with Keycloak.
Run the following command:
docker run --rm --name=CustomConnectorInSMWithKeyCloak \
-v $PWD/connector.jar:/opt/app/connector.jar \
--network=camunda-platform_camunda-platform \
-e ZEEBE_CLIENT_BROKER_GATEWAY-ADDRESS=zeebe:26500 \
-e ZEEBE_CLIENT_SECURITY_PLAINTEXT=true \
-e ZEEBE_CLIENT_ID=<YOUR_ZEEBE_CLIENT_ID> \
-e ZEEBE_CLIENT_SECRET=<YOUR_ZEEBE_CLIENT_SECRET> \
-e ZEEBE_TOKEN_AUDIENCE=zeebe-api \
-e ZEEBE_AUTHORIZATION_SERVER_URL=http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/token \
-e CAMUNDA_OPERATE_CLIENT_KEYCLOAK-URL=http://keycloak:8080 \
-e CAMUNDA_OPERATE_CLIENT_CLIENT-ID=connectors \
-e CAMUNDA_OPERATE_CLIENT_CLIENT-SECRET=<YOUR_OPERATE_CLIENT_SECRET> \
-e CAMUNDA_OPERATE_CLIENT_KEYCLOAK-REALM=<YOUR_KEYCLOAK_OPERATE_REALM> \
-e CAMUNDA_OPERATE_CLIENT_URL=http://operate:8080 \
camunda/connectors-bundle:<desired-version>
Exact values of the environment variables related to Zeebe, Operate, Keycloak, or network may depend on your own configuration.
Wiring your Connector with Camunda Helm charts​
There are multiple ways to configure a Helm/Kubernetes Self-Managed cluster. Refer to the official guide to learn more.
For the purpose of this section, imagine you installed Helm charts with helm install dev camunda/camunda-platform
,
and forwarded Zeebe, Operate, and Keycloak ports:
kubectl port-forward svc/dev-zeebe-gateway 26500:26500
kubectl port-forward svc/dev-operate 8081:80
kubectl port-forward svc/dev-keycloak 18080:80
Now, you need to obtain both Zeebe and Connectors' Operate OAuth clients. You can do it with kubectl get secret dev-zeebe-identity-secret -o jsonpath="{.data.*}" | base64 --decode
and kubectl get secret dev-connectors-identity-secret -o jsonpath="{.data.*}" | base64 --decode
respectively.
Run the following command:
docker run --rm --name=CustomConnectorInSMWithHelm \
-v $PWD/connector.jar:/opt/app/connector.jar \
-e ZEEBE_CLIENT_BROKER_GATEWAY-ADDRESS=host.docker.internal:26500 \
-e ZEEBE_CLIENT_SECURITY_PLAINTEXT=true \
-e ZEEBE_CLIENT_ID=zeebe \
-e ZEEBE_CLIENT_SECRET=<YOUR_ZEEBE_CLIENT_SECRET> \
-e ZEEBE_TOKEN_AUDIENCE=zeebe-api \
-e ZEEBE_AUTHORIZATION_SERVER_URL=http://host.docker.internal:18080/auth/realms/camunda-platform/protocol/openid-connect/token \
-e CAMUNDA_OPERATE_CLIENT_KEYCLOAK-URL=http://host.docker.internal:18080 \
-e CAMUNDA_OPERATE_CLIENT_CLIENT-ID=connectors \
-e CAMUNDA_OPERATE_CLIENT_CLIENT-SECRET=<YOUR_OPERATE_CLIENT_SECRET> \
-e CAMUNDA_OPERATE_CLIENT_KEYCLOAK-REALM=camunda-platform \
-e CAMUNDA_OPERATE_CLIENT_URL=http://host.docker.internal:8081 \
camunda/connectors-bundle:<desired-version>
Exact values of the environment variables related to Zeebe, Operate, Keycloak, or network may depend on your own configuration.