Terraform module to deploy a highly available linux scaleset running stateless docker images using docker-compose, placed behind an Azure Loadbalancer. Input parameters are the docker-compose file which should be used as well as, optionally, configuration files to mount into the containers.
The highly-available setup includes:
- A zone-redundant scaleset behind a zone-redundant loadbalancer
- Healthchecks of the containers
- Automatic OS-upgrades
- Automatic instance repair
- Autoscaling based on CPU metric
- Resource Groups for the loadbalancer and the scaleset. Can be the same.
- A VNET to place both the loadbalancer and the scaleset.
- Subnets for the loadbalancer and the scaleset. Can be the same.
- Connectivity on the configured routes between the used subnets. Both NSGs and routes have to be configured, if applicable.
- A Public SSH key for the scaleset admin user.
- Optional: If you choose to opt-in for boot diagnostics for the scaleset, an appropriate storage account is needed.
An exemplary workspace calling this module can be found here