Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions resources/terraform/devnet/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@ module "devnet" {
disk-volume-type = var.disk_volume_type
}

nova-indexer-node-config = {
instance-type = var.instance_type["nova-indexer"]
auto-evm-indexer-node-config = {
instance-type = var.instance_type["auto-evm-indexer"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["nova-indexer"]
instance-count = var.instance_count["auto-evm-indexer"]
docker-org = "autonomys"
docker-tag = "mainnet-2024-nov-18"
domain-prefix = "nova-indexer"
domain-prefix = "auto-evm-indexer"
reserved-only = false
prune = false
node-dsn-port = 30433
Expand Down Expand Up @@ -109,7 +109,7 @@ module "devnet" {
instance-count = var.instance_count["domain"]
docker-org = "autonomys"
docker-tag = "mainnet-2024-nov-18"
domain-prefix = ["nova", "autoid"]
domain-prefix = ["auto-evm", "autoid"]
reserved-only = false
prune = false
node-dsn-port = 30433
Expand Down Expand Up @@ -142,6 +142,7 @@ module "devnet" {

cloudflare_api_token = var.cloudflare_api_token
cloudflare_email = var.cloudflare_email
cloudflare_zone_id = var.cloudflare_zone_id
nr_api_key = var.nr_api_key
access_key = var.access_key
secret_key = var.secret_key
Expand Down
6 changes: 3 additions & 3 deletions resources/terraform/devnet/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ output "rpc-indexer-node-ipv4-addresses" {
description = "RPC indexer node IPv4 Addresses"
}

output "nova-indexer-node-ipv4-addresses" {
value = module.devnet.nova_indexer_node_public_ip
description = "Nova indexer node IPv4 Addresses"
output "auto-evm-indexer-node-ipv4-addresses" {
value = module.devnet.auto_evm_indexer_node_public_ip
description = "Auto EVM indexer node IPv4 Addresses"
}

output "farmer-node-ipv4-addresses" {
Expand Down
28 changes: 17 additions & 11 deletions resources/terraform/devnet/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ variable "network_name" {
default = "devnet"

}

variable "cloudflare_zone_id" {
description = "Cloudflare zone ID"
type = string
}

variable "farmer_reward_address" {
description = "Farmer's reward address"
type = string
Expand All @@ -20,20 +26,20 @@ variable "domain_id" {
variable "domain_labels" {
description = "Tag of the domain to run"
type = list(string)
default = ["nova", "autoid"]
default = ["auto-evm", "autoid"]
}

variable "instance_type" {
type = map(string)
default = {
bootstrap = "m6a.xlarge"
rpc = "m6a.xlarge"
domain = "m6a.xlarge"
rpc-indexer = "m6a.xlarge"
nova-indexer = "m6a.xlarge"
farmer = "m6a.xlarge"
evm_bootstrap = "m6a.xlarge"
autoid_bootstrap = "m6a.xlarge"
bootstrap = "m7a.xlarge"
rpc = "m7a.xlarge"
domain = "m7a.xlarge"
rpc-indexer = "m7a.xlarge"
auto-evm-indexer = "m7a.xlarge"
farmer = "c7a.2xlarge"
evm_bootstrap = "m7a.xlarge"
autoid_bootstrap = "m7a.xlarge"
}
}

Expand All @@ -59,8 +65,8 @@ variable "instance_count" {
rpc = 2
domain = 0
autoid = 0
rpc-indexer = 1
nova-indexer = 0
rpc-indexer = 0
auto-evm-indexer = 0
farmer = 1
evm_bootstrap = 0
autoid_bootstrap = 0
Expand Down
6 changes: 3 additions & 3 deletions resources/terraform/mainnet/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,11 @@ module "mainnet" {
disk-volume-type = var.disk_volume_type
}

nova-indexer-node-config = {
instance-type = var.instance_type["nova-indexer"]
auto-evm-indexer-node-config = {
instance-type = var.instance_type["auto-evm-indexer"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["nova-indexer"]
instance-count = var.instance_count["auto-evm-indexer"]
docker-org = "autonomys"
docker-tag = "mainnet-2025-jan-14"
domain-prefix = "auto-evm-indexer"
Expand Down
4 changes: 2 additions & 2 deletions resources/terraform/mainnet/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ output "rpc-indexer-node-ipv4-addresses" {
description = "RPC indexer node IPv4 Addresses"
}

output "nova-indexer-node-ipv4-addresses" {
value = module.mainnet.nova_indexer_node_public_ip
output "auto-evm-indexer-node-ipv4-addresses" {
value = module.mainnet.auto_evm_indexer_node_public_ip
description = "Nova indexer node IPv4 Addresses"
}

Expand Down
4 changes: 2 additions & 2 deletions resources/terraform/mainnet/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ variable "instance_type" {
rpc = "m7a.2xlarge"
domain = "m7a.2xlarge"
rpc-indexer = "c7a.4xlarge"
nova-indexer = "c7a.4xlarge"
auto-evm-indexer = "c7a.4xlarge"
farmer = "c7a.2xlarge"
evm_bootstrap = "c7a.xlarge"
autoid_bootstrap = "c7a.xlarge"
Expand Down Expand Up @@ -59,7 +59,7 @@ variable "instance_count" {
rpc = 2
domain = 2
rpc-indexer = 1
nova-indexer = 0
auto-evm-indexer = 0
farmer = 1
evm_bootstrap = 0
autoid_bootstrap = 0
Expand Down
6 changes: 3 additions & 3 deletions resources/terraform/taurus/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,11 @@ module "taurus" {
disk-volume-type = var.disk_volume_type
}

nova-indexer-node-config = {
instance-type = var.instance_type["nova-indexer"]
auto-evm-indexer-node-config = {
instance-type = var.instance_type["auto-evm-indexer"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["nova-indexer"]
instance-count = var.instance_count["auto-evm-indexer"]
docker-org = "autonomys"
docker-tag = "taurus-2025-may-27"
domain-prefix = "auto-evm-indexer"
Expand Down
4 changes: 2 additions & 2 deletions resources/terraform/taurus/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ output "rpc-indexer-node-ipv4-addresses" {
description = "RPC indexer node IPv4 Addresses"
}

output "nova-indexer-node-ipv4-addresses" {
value = module.taurus.nova_indexer_node_public_ip
output "auto-evm-indexer-node-ipv4-addresses" {
value = module.taurus.auto_evm_indexer_node_public_ip
description = "Nova indexer node IPv4 Addresses"
}

Expand Down
4 changes: 2 additions & 2 deletions resources/terraform/taurus/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ variable "instance_type" {
rpc = "m7a.2xlarge"
domain = "m7a.2xlarge"
rpc-indexer = "c7a.4xlarge"
nova-indexer = "c7a.4xlarge"
auto-evm-indexer = "c7a.4xlarge"
farmer = "c7a.2xlarge"
evm_bootstrap = "m7a.xlarge"
autoid_bootstrap = "m7a.xlarge"
Expand Down Expand Up @@ -60,7 +60,7 @@ variable "instance_count" {
domain = 0
autoid = 0
rpc-indexer = 1
nova-indexer = 0
auto-evm-indexer = 0
farmer = 1
evm_bootstrap = 0
autoid_bootstrap = 0
Expand Down
119 changes: 73 additions & 46 deletions templates/terraform/network-primitives/dns.tf
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
data "cloudflare_zone" "cloudflare_zone" {
name = "subspace.network"
zone_id = var.cloudflare_zone_id
}


locals {
# Calculate the split point
instance_split = var.domain-node-config.instance-count / 2

# Create explicit mappings for nova and autoid instances
nova_instances = {
# Create explicit mappings for auto_evm and autoid instances
auto_evm_instances = {
for idx in range(0, local.instance_split) : idx => {
ip_v4 = local.evm_nodes_ip_v4[idx]
ip_v6 = local.evm_nodes_ip_v6[idx]
Expand All @@ -22,106 +23,132 @@ locals {
}
}

resource "cloudflare_record" "rpc" {
resource "cloudflare_dns_record" "rpc" {
count = length(local.rpc_nodes_ip_v4)
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "${var.rpc-node-config.domain-prefix}-${count.index}.${var.network_name}"
value = local.rpc_nodes_ip_v4[count.index]
content = local.rpc_nodes_ip_v4[count.index]
type = "A"
ttl = 3600
proxied = true
}

resource "cloudflare_record" "nova" {
for_each = local.nova_instances
zone_id = data.cloudflare_zone.cloudflare_zone.id
resource "cloudflare_dns_record" "auto_evm" {
for_each = local.auto_evm_instances
zone_id = var.cloudflare_zone_id
name = "${var.domain-node-config.domain-prefix[0]}-${each.key}.${var.network_name}"
value = each.value.ip_v4
content = each.value.ip_v4
type = "A"
ttl = 3600
proxied = true
}

resource "cloudflare_record" "nova_ipv6" {
for_each = local.nova_instances
zone_id = data.cloudflare_zone.cloudflare_zone.id
resource "cloudflare_dns_record" "auto_evm_ipv6" {
for_each = local.auto_evm_instances
zone_id = var.cloudflare_zone_id
name = "${var.domain-node-config.domain-prefix[0]}-${each.key}.${var.network_name}"
value = each.value.ip_v6
content = each.value.ip_v6
type = "AAAA"
ttl = 3600
proxied = true
}

resource "cloudflare_record" "rpc-indexer" {
resource "cloudflare_dns_record" "rpc-indexer" {
count = length(local.rpc_indexer_nodes_ip_v4)
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "${var.rpc-indexer-node-config.domain-prefix}-${count.index}.${var.network_name}"
value = local.rpc_indexer_nodes_ip_v4[count.index]
content = local.rpc_indexer_nodes_ip_v4[count.index]
type = "A"
ttl = 3600
proxied = false
}

resource "cloudflare_record" "nova-indexer-rpc" {
count = length(local.nova_indexer_nodes_ip_v4)
zone_id = data.cloudflare_zone.cloudflare_zone.id
name = "${var.nova-indexer-node-config.domain-prefix}-${count.index}.${var.network_name}"
value = local.nova_indexer_nodes_ip_v4[count.index]
resource "cloudflare_dns_record" "auto-evm-indexer-rpc" {
count = length(local.auto_evm_indexer_nodes_ip_v4)
zone_id = var.cloudflare_zone_id
name = "${var.auto-evm-indexer-node-config.domain-prefix}-${count.index}.${var.network_name}"
content = local.auto_evm_indexer_nodes_ip_v4[count.index]
type = "A"
ttl = 3600
proxied = false
}

resource "cloudflare_record" "autoid" {
resource "cloudflare_dns_record" "autoid" {
for_each = local.autoid_instances
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "${var.domain-node-config.domain-prefix[1]}-${each.key}.${var.network_name}"
value = each.value.ip_v4
content = each.value.ip_v4
type = "A"
ttl = 3600
proxied = true
}

resource "cloudflare_record" "autoid_ipv6" {
resource "cloudflare_dns_record" "autoid_ipv6" {
for_each = local.autoid_instances
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "${var.domain-node-config.domain-prefix[1]}-${each.key}.${var.network_name}"
value = each.value.ip_v6
content = each.value.ip_v6
type = "AAAA"
ttl = 3600
proxied = true
}

resource "cloudflare_record" "bootstrap" {
resource "cloudflare_dns_record" "bootstrap" {
count = length(local.bootstrap_nodes_ip_v4)
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "bootstrap-${count.index}.${var.network_name}"
value = local.bootstrap_nodes_ip_v4[count.index]
content = local.bootstrap_nodes_ip_v4[count.index]
type = "A"
ttl = 3600
proxied = false
}

resource "cloudflare_record" "bootstrap_ipv6" {
resource "cloudflare_dns_record" "bootstrap_ipv6" {
count = length(local.bootstrap_nodes_ip_v4)
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "bootstrap-${count.index}.${var.network_name}"
value = local.bootstrap_nodes_ip_v6[count.index]
content = local.bootstrap_nodes_ip_v6[count.index]
type = "AAAA"
ttl = 3600
proxied = false
}

resource "cloudflare_record" "bootstrap_evm" {
resource "cloudflare_dns_record" "bootstrap_evm" {
count = length(local.bootstrap_nodes_evm_ip_v4)
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "bootstrap-${count.index}.${var.domain-node-config.domain-prefix[0]}.${var.network_name}"
value = local.bootstrap_nodes_evm_ip_v4[count.index]
content = local.bootstrap_nodes_evm_ip_v4[count.index]
type = "A"
ttl = 3600
proxied = false
}

resource "cloudflare_record" "bootstrap_evm_ipv6" {
resource "cloudflare_dns_record" "bootstrap_evm_ipv6" {
count = length(local.bootstrap_nodes_evm_ip_v4)
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "bootstrap-${count.index}.${var.domain-node-config.domain-prefix[0]}.${var.network_name}"
value = local.bootstrap_nodes_evm_ip_v6[count.index]
content = local.bootstrap_nodes_evm_ip_v6[count.index]
type = "AAAA"
ttl = 3600
proxied = false
}

resource "cloudflare_record" "bootstrap_auto" {
resource "cloudflare_dns_record" "bootstrap_auto" {
count = length(local.bootstrap_nodes_autoid_ip_v4)
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "bootstrap-${count.index}.${var.domain-node-config.domain-prefix[1]}.${var.network_name}"
value = local.bootstrap_nodes_autoid_ip_v4[count.index]
content = local.bootstrap_nodes_autoid_ip_v4[count.index]
type = "A"
ttl = 3600
proxied = false
}

resource "cloudflare_record" "bootstrap_auto_ipv6" {
resource "cloudflare_dns_record" "bootstrap_auto_ipv6" {
count = length(local.bootstrap_nodes_autoid_ip_v4)
zone_id = data.cloudflare_zone.cloudflare_zone.id
zone_id = var.cloudflare_zone_id
name = "bootstrap-${count.index}.${var.domain-node-config.domain-prefix[1]}.${var.network_name}"
value = local.bootstrap_nodes_autoid_ip_v6[count.index]
content = local.bootstrap_nodes_autoid_ip_v6[count.index]
type = "AAAA"
ttl = 3600
proxied = false
}
Loading