blockstream-satellite-api/terraform/main.tf

181 lines
5.7 KiB
Terraform
Raw Normal View History

2019-01-16 10:22:44 -08:00
terraform {
required_version = "> 0.11.0"
backend "gcs" {
2019-05-31 07:23:30 -07:00
bucket = "terraform-bs-source"
prefix = "satellite-api"
2019-01-16 10:22:44 -08:00
}
}
provider "google" {
project = var.project
2019-01-16 10:22:44 -08:00
}
provider "google-beta" {
project = var.project
}
2019-03-07 12:29:43 -08:00
module "blc-mainnet" {
2019-05-31 07:23:30 -07:00
source = "./modules/blc"
2019-03-07 12:29:43 -08:00
2019-05-31 07:23:30 -07:00
project = var.project
2019-03-07 12:29:43 -08:00
name = "satellite-api"
network = "default"
2019-05-31 07:23:30 -07:00
lightning_docker = var.lightning_docker
charge_docker = var.charge_docker
ionosphere_docker = var.ionosphere_docker
ionosphere_sse_docker = var.ionosphere_sse_docker
node_exporter_docker = var.node_exporter_docker
2019-07-29 16:40:27 -07:00
postgres_docker = var.postgres_docker
autossh_docker = var.autossh_docker
certbot_docker = var.certbot_docker
2019-03-07 12:29:43 -08:00
net = "mainnet"
2019-05-31 07:23:30 -07:00
env = local.env
2019-06-13 09:01:23 -07:00
lb_svc_acct = module.lb.lb_svc_acct
ssh_key_net = ""
lightning_cmd = "lightningd --mainnet --conf=/root/.lightning/bitcoin/lightning.conf"
2019-03-07 12:29:43 -08:00
2019-05-31 07:23:30 -07:00
create_resources = local.create_mainnet
2019-03-07 12:29:43 -08:00
# CI vars
2019-05-31 07:23:30 -07:00
region = var.region
zone = var.zone
instance_type = var.instance_type[1]
2019-05-31 07:23:30 -07:00
timeout = var.timeout
prom_service_acct = var.prom_service_acct
opsgenie_key = var.opsgenie_key
rpcpass = var.rpcpass
2019-07-29 16:40:27 -07:00
pguser = var.pguser
pgpass = var.pgpass
charge_token = var.charge_token
k8s_autossh_lb = var.k8s_autossh_lb
private_bucket = var.private_bucket
2019-03-07 12:29:43 -08:00
}
module "blc-testnet" {
2019-05-31 07:23:30 -07:00
source = "./modules/blc"
2019-01-16 10:22:44 -08:00
2019-05-31 07:23:30 -07:00
project = var.project
2019-01-16 10:22:44 -08:00
name = "satellite-api"
network = "default"
2019-05-31 07:23:30 -07:00
lightning_docker = var.lightning_docker
charge_docker = var.charge_docker
ionosphere_docker = var.ionosphere_docker
ionosphere_sse_docker = var.ionosphere_sse_docker
node_exporter_docker = var.node_exporter_docker
2019-07-29 16:40:27 -07:00
postgres_docker = var.postgres_docker
autossh_docker = var.autossh_docker
certbot_docker = var.certbot_docker
2019-01-16 10:22:44 -08:00
net = "testnet"
2019-05-31 07:23:30 -07:00
env = local.env
2020-01-06 06:36:41 -08:00
lb_svc_acct = "${length(data.terraform_remote_state.blc-mainnet.outputs) > 1 ? data.terraform_remote_state.blc-mainnet.outputs.lb_svc_acct : ""}"
ssh_key_net = "_testnet"
lightning_cmd = "lightningd --testnet --conf=/root/.lightning/testnet/lightning.conf"
2019-01-16 10:22:44 -08:00
2019-05-31 07:23:30 -07:00
create_resources = local.create_testnet
2019-01-18 14:57:15 -08:00
2019-01-16 10:22:44 -08:00
# CI vars
2019-05-31 07:23:30 -07:00
region = var.region
zone = var.zone
instance_type = var.instance_type[1]
2019-05-31 07:23:30 -07:00
timeout = var.timeout
prom_service_acct = var.prom_service_acct
opsgenie_key = var.opsgenie_key
rpcpass = var.rpcpass
2019-07-29 16:40:27 -07:00
pguser = var.pguser
pgpass = var.pgpass
charge_token = var.charge_token
k8s_autossh_lb = var.k8s_autossh_lb
private_bucket = var.private_bucket
2019-06-13 09:01:23 -07:00
}
module "lb" {
source = "./modules/lb"
project = var.project
name = "satellite-api-lb"
network = "default"
certbot_docker = var.certbot_docker
node_exporter_docker = var.node_exporter_docker
env = local.env
internal_ip_mainnet = module.blc-mainnet.internal_ip
internal_ip_testnet = data.terraform_remote_state.blc-testnet.outputs.blc_internal_ip_testnet
target_pool = "${length(google_compute_target_pool.lb-pool) > 0 ? google_compute_target_pool.lb-pool[0].self_link : ""}"
health_check = "${length(google_compute_http_health_check.lb-health) > 0 ? google_compute_http_health_check.lb-health[0].self_link : ""}"
2019-06-13 09:01:23 -07:00
create_resources = local.create_mainnet
# CI vars
region = var.region
zone = var.zone
instance_type = var.instance_type[0]
2019-06-13 09:01:23 -07:00
host = var.host
timeout = var.timeout
prom_service_acct = var.prom_service_acct
letsencrypt_email = var.letsencrypt_email
public_bucket_url = var.public_bucket_url
2019-01-16 10:22:44 -08:00
}
2019-01-18 14:57:15 -08:00
module "tor" {
2019-05-31 07:23:30 -07:00
source = "./modules/tor"
2019-01-18 14:57:15 -08:00
2019-05-31 07:23:30 -07:00
project = var.project
2019-01-18 14:57:15 -08:00
network = "default"
name = "satapi-tor"
2019-05-31 07:23:30 -07:00
gcloud_docker = var.gcloud_docker
tor_docker = var.tor_docker
node_exporter_docker = var.node_exporter_docker
kms_key = element(concat(google_kms_crypto_key.tor-crypto-key.*.name, [""]), 0)
kms_key_ring = element(concat(google_kms_key_ring.tor-key-ring.*.name, [""]), 0)
kms_key_link = element(
concat(google_kms_crypto_key.tor-crypto-key.*.self_link, [""]),
0,
)
tor_lb = element(
concat(google_compute_global_address.tor-lb.*.address, [""]),
0,
)
create_resources = local.create_misc
2019-01-18 14:57:15 -08:00
# CI vars
2019-05-31 07:23:30 -07:00
region = var.region
zone = var.zone
instance_type = var.instance_type[0]
2019-05-31 07:23:30 -07:00
onion_host = var.onion_host
prom_service_acct = var.prom_service_acct
}
module "prometheus" {
2019-05-31 07:23:30 -07:00
source = "./modules/prometheus"
2019-05-31 07:23:30 -07:00
project = var.project
network = "default"
name = "satapi-prometheus"
2019-05-31 07:23:30 -07:00
prom_docker = var.prom_docker
node_exporter_docker = var.node_exporter_docker
2019-05-31 07:23:30 -07:00
create_resources = local.create_misc
# CI vars
2019-05-31 07:23:30 -07:00
region = var.region
zone = var.zone
instance_type = var.instance_type[1]
2019-05-31 07:23:30 -07:00
prom_allowed_source_ip = var.prom_allowed_source_ip
opsgenie_key = var.opsgenie_key
prom_service_acct = var.prom_service_acct
}
module "dns" {
2019-05-31 07:23:30 -07:00
source = "./modules/dns"
2019-05-31 07:23:30 -07:00
project = var.project
2019-05-31 07:23:30 -07:00
create_resources = local.create_misc
# CI vars
2019-05-31 07:23:30 -07:00
satellite_lb = var.satellite_lb
satellite_api_lb = var.satellite_api_lb
satellite_api_lb_staging = var.satellite_api_lb_staging
}