mirror of
https://github.com/status-im/infra-swarm.git
synced 2025-02-21 20:08:22 +00:00
74 lines
1.8 KiB
HCL
74 lines
1.8 KiB
HCL
/* 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"
|
|
/* node type */
|
|
name = "node"
|
|
group = "swarm"
|
|
/* scaling options */
|
|
count = "${local.ws["hosts_count"]}"
|
|
do_size = "s-1vcpu-2gb"
|
|
gc_size = "n1-standard-1"
|
|
/* general */
|
|
env = "${var.env}"
|
|
domain = "${var.domain}"
|
|
eth_network = "${var.eth_network}"
|
|
/* firewall */
|
|
open_ports = [
|
|
"8080-8080", /* http */
|
|
"8443-8443", /* https */
|
|
"30303-30303", /* geth */
|
|
"30399-30399", /* swarm */
|
|
]
|
|
}
|
|
|
|
resource "cloudflare_record" "swarm" {
|
|
domain = "${var.domain}"
|
|
name = "${var.env}-${terraform.workspace}"
|
|
value = "${element(module.swarm.public_ips, count.index)}"
|
|
count = 3
|
|
type = "A"
|
|
ttl = 3600
|
|
proxied = true
|
|
}
|