2019-01-16 10:22:44 -08:00
|
|
|
terraform {
|
2020-09-25 13:51:32 -07:00
|
|
|
required_providers {
|
|
|
|
google = {
|
|
|
|
source = "hashicorp/google"
|
|
|
|
}
|
|
|
|
google-beta = {
|
|
|
|
source = "hashicorp/google-beta"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
required_version = ">= 0.13"
|
2019-01-16 10:22:44 -08:00
|
|
|
|
|
|
|
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" {
|
2020-01-02 10:58:11 -08:00
|
|
|
project = var.project
|
2019-01-16 10:22:44 -08:00
|
|
|
}
|
|
|
|
|
2019-02-13 14:36:26 -08:00
|
|
|
provider "google-beta" {
|
2020-01-02 10:58:11 -08:00
|
|
|
project = var.project
|
2019-02-13 14:36:26 -08:00
|
|
|
}
|
|
|
|
|
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
|
2019-08-06 16:47:59 -07:00
|
|
|
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
|
2019-08-12 17:55:52 -07:00
|
|
|
ssh_key_net = ""
|
2020-01-03 05:57:51 -08:00
|
|
|
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
|
2019-09-03 15:20:15 -07:00
|
|
|
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
|
2019-08-06 16:47:59 -07:00
|
|
|
charge_token = var.charge_token
|
|
|
|
k8s_autossh_lb = var.k8s_autossh_lb
|
2019-09-06 11:43:25 -07:00
|
|
|
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
|
2019-08-06 16:47:59 -07:00
|
|
|
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-10-28 08:23:44 -07:00
|
|
|
lb_svc_acct = length(data.terraform_remote_state.blc-mainnet.outputs) > 1 ? data.terraform_remote_state.blc-mainnet.outputs.lb_svc_acct : ""
|
2019-08-12 17:55:52 -07:00
|
|
|
ssh_key_net = "_testnet"
|
2020-01-03 05:57:51 -08:00
|
|
|
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
|
2019-09-03 15:20:15 -07:00
|
|
|
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
|
2019-08-06 16:47:59 -07:00
|
|
|
charge_token = var.charge_token
|
|
|
|
k8s_autossh_lb = var.k8s_autossh_lb
|
2019-09-06 11:43:25 -07:00
|
|
|
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
|
2020-10-28 08:51:44 -07:00
|
|
|
internal_ip_gossip = data.terraform_remote_state.gossip-prod.outputs.gossip_internal_ip
|
2021-01-26 14:05:45 -03:00
|
|
|
internal_ip_auth = data.terraform_remote_state.auth-prod.outputs.auth_internal_ip
|
|
|
|
internal_ip_btc_src = data.terraform_remote_state.btc-src-prod.outputs.btc_src_internal_ip
|
2020-10-28 08:23:44 -07:00
|
|
|
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
|
2019-09-03 15:20:15 -07:00
|
|
|
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
|
2019-06-03 05:36:31 -07:00
|
|
|
letsencrypt_email = var.letsencrypt_email
|
|
|
|
public_bucket_url = var.public_bucket_url
|
2021-01-26 14:05:45 -03:00
|
|
|
station1 = var.station1
|
|
|
|
station2 = var.station2
|
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
|
|
|
|
2019-02-27 12:47:01 -08:00
|
|
|
# CI vars
|
2019-05-31 07:23:30 -07:00
|
|
|
region = var.region
|
|
|
|
zone = var.zone
|
2019-09-03 15:20:15 -07:00
|
|
|
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
|
2019-02-26 16:44:51 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
module "prometheus" {
|
2019-05-31 07:23:30 -07:00
|
|
|
source = "./modules/prometheus"
|
2019-02-26 16:44:51 -08:00
|
|
|
|
2019-05-31 07:23:30 -07:00
|
|
|
project = var.project
|
2019-02-26 16:44:51 -08:00
|
|
|
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-02-26 16:44:51 -08:00
|
|
|
|
2019-05-31 07:23:30 -07:00
|
|
|
create_resources = local.create_misc
|
2019-02-26 16:44:51 -08:00
|
|
|
|
2019-02-27 12:47:01 -08:00
|
|
|
# CI vars
|
2019-05-31 07:23:30 -07:00
|
|
|
region = var.region
|
|
|
|
zone = var.zone
|
2019-09-03 15:20:15 -07:00
|
|
|
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
|
2019-02-13 14:36:26 -08:00
|
|
|
}
|
2019-02-27 12:47:01 -08:00
|
|
|
|
|
|
|
module "dns" {
|
2019-05-31 07:23:30 -07:00
|
|
|
source = "./modules/dns"
|
2019-02-27 12:47:01 -08:00
|
|
|
|
2019-05-31 07:23:30 -07:00
|
|
|
project = var.project
|
2019-02-27 12:47:01 -08:00
|
|
|
|
2019-05-31 07:23:30 -07:00
|
|
|
create_resources = local.create_misc
|
2019-02-27 12:47:01 -08:00
|
|
|
|
|
|
|
# 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
|
2019-02-27 12:47:01 -08:00
|
|
|
}
|