3. Install a9s Consul
a9s Consul is used for service discovery within the a9s Data Services. It must be in place before deploying any of the a9s Data Services and the a9s Data Services Framework components.
For further details on the specifications of this component, see the a9s Consul documentation.
3.1. Create an Encryption Key
a9s Consul requires a valid encryption key, which cannot be created by BOSH; thus, this key must be created
manually, and stored in the BOSH Director's CredHub, under the key name /cdns_encrypt.
A valid a9s Consul encryption key can be created by executing:
consul keygen
It can then be stored in CredHub by executing the following command:
credhub set -n=/cdns_encrypt \
-w='<your_valid_encryption_key>' \
-t password
3.2. Deploy a9s Consul
The deployment is created by executing:
bosh -d consul-dns deploy consul-dns/consul-dns.yml \
-l config/iaas-config.yml
3.3. Make a9s Consul DNS Available in the Application Platform
The applications deployed to the Application Platform (e.g. Cloud Foundry) must be able to resolve the hostnames of a9s
Consul. The suffix/TLD of the hostnames in the IaaS config can be set under iaas.consul.domain.
To configure DNS query delegation in the existing name server, the name servers must be set up to delegate all DNS
queries that end with the selected suffix to the IP addresses of the dnsmasq VMs in the consul-dns deployment.
If setting up DNS query delegation in the name server is not an option, the IP addresses of the dnsmasq servers can be
configured in the platform, so that each DNS query is first redirected to the consul-dns. The consul-dns will
redirect all queries that do not end with the selected suffix to upstream name servers.
Once a9s Consul DNS is available in the platform, it must be verified that internal (e.g. consul.service.consul)
hostnames as well as external hostnames can be resolved. Perform this check in each availability zone.