Skip to content

dzangolab/terraform-dzangolab-aws-docker-swarm

Repository files navigation

AWS EC2 Docker Swarm Cluster

This terraform module creates a Docker Swarm cluster using AWS EC2 instances. It optionnally creates a gluster cluster and/or enables an EFS.

Providers

Name Version
aws ~> 2.23
null n/a
template n/a

Inputs

Name Description Type Default Required
ami Ubuntu Server 18.04 LTS AMI string "ami-09a4a9ce71ff3f20b" no
availability_zone The availability zone in which to create EC2 instances string "ap-southeast-1a" no
connect_via_private_address Whether connection to the servers should be made via the private ip address (true) or the public ip address (false) bool false no
connection_timeout Timeout for connection to servers string "2m" no
eip_allocation_id The allocation ID of the Elastic IP address any n/a yes
enable_efs Set to true in order to enable EFS bool false no
enable_gluster Set to true in order to enable gluster bool false no
env The environment of the current deployment any n/a yes
gluster_volume_size Size of the gluster volume in gibibytes (GiB) number 1 no
key_pair_name The name for the key pair any n/a yes
manager_instance_type Manager instance type string "t3a.large" no
manager_volume_delete_on_termination Whether root volume should be destroyed on manager instance termination bool true no
manager_volume_size The size of root volume of manager instance in gibibytes (GiB). number 8 no
manager_volume_type The type of root volume of manager intances string "gp2" no
private_key_path SSH private key path for ssh connection. string "~/.ssh/id_rsa" no
ssh_public_keys SSH public keys to add to instances string "" no
ssh_user User for logging into nodes (ansible) string "ubuntu" no
subnet_main_cidr n/a string "192.168.0.0/24" no
swarm_manager_count Number of manager nodes number 1 no
swarm_manager_name Name to use for naming manager nodes string "manager" no
swarm_name n/a any n/a yes
swarm_worker_count Number of worker nodes number 1 no
swarm_worker_name Name to use for naming worker nodes string "worker" no
vpc_cidr n/a string "192.168.0.0/24" no
worker_instance_type Worker instance type string "t3a.large" no
worker_volume_delete_on_termination Whether root volume should be destroyed on worker instance termination bool true no
worker_volume_size The size of root volume of worker instance in gibibytes (GiB). number 8 no
worker_volume_type The type of root volume of worker intances string "gp2" no

Outputs

Name Description
ansible_inventory Content of Ansible inventory
efs_dns_name DNS name of the provisioned AWS EFS
swarm_manager_private_ips The manager nodes private ipv4 adresses
swarm_manager_public_ips The manager nodes public ipv4 adresses
swarm_worker_private_ips The worker nodes private ipv4 adresses
swarm_worker_public_ips The worker nodes public ipv4 adresses