This module creates a Consul cluster with agents and servers on Digital Ocean, using a load balancer as frontend.
It requires a Vault instance with Digital Ocean tokens in a KV store, and creates an ssh key by adding a GitHub user's public key.
The examples/
directory contains the example usage of this module.
These examples show how to use the module in your project, and are also use for testing in CI/CD.
Name | Version |
---|---|
terraform | >1.2.0 |
digitalocean | >=2.21.0 |
http | >=3.0.1 |
random | >=3.3.2 |
vault | >=3.8.0 |
Name | Version |
---|---|
digitalocean | >=2.21.0 |
http | >=3.0.1 |
random | >=3.3.2 |
vault | >=3.8.0 |
No modules.
Name | Type |
---|---|
digitalocean_domain.cluster | resource |
digitalocean_droplet.agent | resource |
digitalocean_droplet.server | resource |
digitalocean_firewall.consul | resource |
digitalocean_firewall.ssh | resource |
digitalocean_loadbalancer.external | resource |
digitalocean_project_resources.agent_droplets | resource |
digitalocean_project_resources.consul_volumes | resource |
digitalocean_project_resources.network | resource |
digitalocean_project_resources.server_droplets | resource |
digitalocean_record.server | resource |
digitalocean_ssh_key.consul | resource |
digitalocean_volume.consul_data | resource |
random_id.key | resource |
digitalocean_image.ubuntu | data source |
digitalocean_project.p | data source |
digitalocean_vpc.selected | data source |
http_http.consul_health | data source |
http_http.ssh_key | data source |
vault_generic_secret.join_token | data source |
Name | Description | Type | Default | Required |
---|---|---|---|---|
agents | number of agent instances | number |
7 |
no |
consul_version | Version of Consul to deploy | string |
"1.15.1" |
no |
datacenter | Name of the Consul datacenter | string |
"HashiDO" |
no |
droplet_size | Size of the droplet for Vault instances | string |
"s-1vcpu-1gb" |
no |
project_name | Name of the project in digitalocean | string |
"hashi" |
no |
servers | number of server instances | number |
3 |
no |
ssh_inbound_source_cidrs | List of CIDRs from which we will allow ssh connections on port 22 | list(any) |
[] |
no |
ssh_public_key_url | URL of of the public ssh key to add to the droplet | string |
"https://github.com/brucellino.keys" |
no |
username | Name of the non-root user to add | string |
"hashiuser" |
no |
vpc_name | Name of the VPC we are deploying into | string |
"hashi" |
no |
Name | Description |
---|---|
agent_public_ips | List of public IPs for the Consul agents |
load_balancer_ip | Public IP of the load balancer fronting the servers |
server_public_ips | List of public IPs for the Consul servers |