infra-swarm/main.tf

62 lines
1.5 KiB
Terraform
Raw Normal View History

2018-08-01 18:20:09 +00:00
/* PROVIDERS --------------------------------------*/
provider "digitalocean" {
token = "${var.digitalocean_token}"
}
provider "cloudflare" {
email = "${var.cloudflare_email}"
token = "${var.cloudflare_token}"
}
provider "google" {
credentials = "${file("google-cloud.json")}"
project = "russia-servers"
region = "us-central1"
}
provider "alicloud" {
access_key = "${var.alicloud_access_key}"
secret_key = "${var.alicloud_secret_key}"
region = "${var.alicloud_region}"
}
/* BACKEND ----------------------------------------*/
terraform {
backend "consul" {
address = "https://consul.statusim.net:8400"
lock = true
/* WARNING This needs to be changed for every repo. */
path = "terraform/swarm/"
ca_file = "ansible/files/consul-ca.crt"
cert_file = "ansible/files/consul-client.crt"
key_file = "ansible/files/consul-client.key"
}
}
/* WORKSPACES -----------------------------------*/
locals {
ws = "${merge(local.env["defaults"], local.env[terraform.workspace])}"
}
/* RESOURCES --------------------------------------*/
module "swarm" {
source = "modules/multi-provider"
2018-08-01 18:20:09 +00:00
/* node type */
name = "node"
group = "swarm"
2018-08-01 18:20:09 +00:00
/* scaling options */
count = "${local.ws["hosts_count"]}"
do_size = "s-1vcpu-2gb"
2018-08-01 18:20:09 +00:00
/* general */
env = "${var.env}"
domain = "${var.domain}"
eth_network = "${var.eth_network}"
2018-08-01 18:20:09 +00:00
/* firewall */
open_ports = [
2018-08-28 14:05:21 +00:00
"8800-8800", /* http */
"30303-30303", /* geth */
"30399-30399", /* swarm */
2018-08-01 18:20:09 +00:00
]
}