Configure Choreo Connect with Consul Discovery (without service mesh)

As the number of services grows within your organization, you may have multiple nodes running the same service. You might spin up new nodes as traffic increases to service and take down some nodes as traffic decreases. Therefore, nodes that want to communicate with other nodes require a mechanism to discover how many nodes are up and running and how to connect to them(service discovery).
Further, they need to know which nodes are healthy to send traffic to(health checks).
You might have different versions of the same service running dedicated for multiple purposes such as production, development, and testing(tagging).

Consul's features such as service discovery, health checks, and tagging system can be used as needed without building a full service mesh. In this case, if you need to let end-users consume your services, you can use Choreo Connect as the API gateway.

This part of the document describes how to set up Choreo Connect with Consul for service discovery.

service discovery

Step 1 - Setup Consul

Set up Consul securely.
For more instructions, see the Consul official documentation.

Step 2 - Configure Choreo Connect

[adapter.consul]
  enable = true
  url = "https://169.254.1.1:8501"
  pollInterval = 5
  aclToken = "d3a2a719-4221-8c65-5212-58d4727427ac"
  mgwServiceName = ""
  serviceMeshEnabled = false
  caCertFile = "/home/wso2/security/truststore/consul/consul-agent-ca.pem"
  certFile = "/home/wso2/security/truststore/consul/local-dc-client-consul-0.pem"
  keyFile = "/home/wso2/security/truststore/consul/local-dc-client-consul-0-key.pem"
  1. Change the url to the URL of the Consul agent you want to connect to.
  2. Change the aclToken to the token you generated from the previous step.
  3. serviceMeshEnabled should be set to false.
  4. You can leave the mgwServiceName empty as the property is not needed.
  5. Add the caCertFile, certFile, and keyFile you generated from the previous step.
  6. Then start Choreo Connect.

Step 3 - Deploy the API

You can use either WSO2 API Manager or APICTL to deploy APIs as described in how to define the endpoints guide.

Top