Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mainnet testnet infra changes #340

Merged
merged 17 commits into from
Sep 19, 2024
Merged
Show file tree
Hide file tree
Changes from 16 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
4 changes: 2 additions & 2 deletions resources/hetzner/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module "network" {
node-dsn-port = 30433
}

bootstrap-node-evm-config = {
bootstrap-node-domain-config = {
deployment-version = 1
instance-count = var.instance_count["bootstrap"]
repo-org = "autonomys"
Expand Down Expand Up @@ -80,5 +80,5 @@ module "network" {

# External data source to run the shell command and extract the value of the operator bootnode connection parameter
data "external" "operator_peer_multiaddr" {
program = ["bash", "-c", "echo '{\"OPERATOR_MULTI_ADDR\": \"'$(sed -nr 's/^NODE_0_OPERATOR_MULTI_ADDR=(.*)/\\1/p' ./bootstrap_node_evm_keys.txt)'\"}'"]
program = ["bash", "-c", "echo '{\"OPERATOR_MULTI_ADDR\": \"'$(sed -nr 's/^NODE_0_OPERATOR_MULTI_ADDR=(.*)/\\1/p' ./bootstrap_node_domain_keys.txt)'\"}'"]
}
20 changes: 10 additions & 10 deletions resources/hetzner/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,22 @@ variable "domain_labels" {
variable "instance_count" {
type = map(number)
default = {
bootstrap = 2
node = 1
farmer = 1
domain = 2
evm_bootstrap = 1
bootstrap = 2
node = 1
farmer = 1
domain = 2
domain_bootstrap = 1
}
}

variable "additional_node_ips" {
type = map(list(string))
default = {
bootstrap = [""]
node = [""]
farmer = [""]
domain = [""]
evm_bootstrap = [""]
bootstrap = [""]
node = [""]
farmer = [""]
domain = [""]
domain_bootstrap = [""]
}
}

Expand Down
9 changes: 9 additions & 0 deletions resources/mainnet/backend.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
terraform {
cloud {
organization = "subspace-sre"

workspaces {
name = "mainnet"
}
}
}
20 changes: 20 additions & 0 deletions resources/mainnet/common.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
variable "nr_api_key" {
description = "New relic API Key"
type = string
}

variable "cloudflare_email" {
type = string
description = "cloudflare email address"
}

variable "cloudflare_api_token" {
type = string
description = "cloudflare api token"
}

variable "netdata_token" {
type = string
sensitive = true

}
170 changes: 170 additions & 0 deletions resources/mainnet/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
module "gemini-3h" {
source = "../../templates/terraform/mainnet-primitives"
path_to_scripts = "../../templates/terraform/mainnet-primitives/scripts"
path_to_configs = "../../templates/terraform/mainnet-primitives/configs"
network_name = var.network_name

bootstrap-node-config = {
instance-type = var.instance_type["bootstrap"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["bootstrap"]
docker-org = "autonomys"
docker-tag = "gemini-3h-2024-sep-03"
reserved-only = false
prune = false
genesis-hash = "0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34"
dsn-listen-port = 30533
node-dsn-port = 30433
disk-volume-size = var.disk_volume_size
disk-volume-type = var.disk_volume_type
}

bootstrap-node-evm-config = {
instance-type = var.instance_type["evm_bootstrap"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["evm_bootstrap"]
docker-org = "autonomys"
docker-tag = "gemini-3h-2024-sep-03"
reserved-only = false
prune = false
genesis-hash = "0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34"
dsn-listen-port = 30533
node-dsn-port = 30433
operator-port = 30334
disk-volume-size = var.disk_volume_size
disk-volume-type = var.disk_volume_type
}

bootstrap-node-autoid-config = {
instance-type = var.instance_type["autoid_bootstrap"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["autoid_bootstrap"]
docker-org = "autonomys"
docker-tag = "gemini-3h-2024-sep-03"
reserved-only = false
prune = false
genesis-hash = "0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34"
dsn-listen-port = 30533
node-dsn-port = 30433
operator-port = 30334
disk-volume-size = var.disk_volume_size
disk-volume-type = var.disk_volume_type
}

rpc-indexer-node-config = {
instance-type = var.instance_type["rpc-indexer"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["rpc-indexer"]
docker-org = "autonomys"
docker-tag = "gemini-3h-2024-jul-16"
domain-prefix = "rpc-indexer"
reserved-only = false
prune = false
node-dsn-port = 30433
disk-volume-size = var.disk_volume_size
disk-volume-type = var.disk_volume_type
}

nova-indexer-node-config = {
instance-type = var.instance_type["nova-indexer"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["nova-indexer"]
docker-org = "autonomys"
docker-tag = "gemini-3h-2024-jul-16"
domain-prefix = "nova-indexer"
reserved-only = false
prune = false
node-dsn-port = 30433
enable-domains = true
domain-id = var.domain_id
domain-labels = var.domain_labels
disk-volume-size = var.disk_volume_size
disk-volume-type = var.disk_volume_type
}

rpc-node-config = {
instance-type = var.instance_type["rpc"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["rpc"]
docker-org = "autonomys"
docker-tag = "gemini-3h-2024-sep-03"
domain-prefix = "rpc"
reserved-only = false
prune = false
node-dsn-port = 30433
disk-volume-size = var.disk_volume_size
disk-volume-type = var.disk_volume_type
}

evm-node-config = {
instance-type = var.instance_type["domain"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["domain"]
docker-org = "autonomys"
docker-tag = "gemini-3h-2024-sep-03"
domain-prefix = "nova"
reserved-only = false
prune = false
node-dsn-port = 30433
enable-domains = true
domain-id = var.domain_id
domain-labels = var.domain_labels
disk-volume-size = var.disk_volume_size
disk-volume-type = var.disk_volume_type
}

autoid-node-config = {
instance-type = var.instance_type["autoid"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["autoid"]
docker-org = "subspace"
docker-tag = "gemini-3h-2024-may-06"
domain-prefix = ["autoid"]
reserved-only = false
prune = false
node-dsn-port = 30434
enable-domains = true
domain-id = var.domain_id
domain-labels = var.domain_labels
disk-volume-size = var.disk_volume_size
disk-volume-type = var.disk_volume_type
}

farmer-node-config = {
instance-type = var.instance_type["farmer"]
deployment-version = 0
regions = var.aws_region
instance-count = var.instance_count["farmer"]
docker-org = "autonomys"
docker-tag = "gemini-3h-2024-sep-03"
reserved-only = false
prune = false
plot-size = "100G"
reward-address = var.farmer_reward_address
force-block-production = true
node-dsn-port = 30433
disk-volume-size = var.disk_volume_size
disk-volume-type = var.disk_volume_type

}

cloudflare_api_token = var.cloudflare_api_token
cloudflare_email = var.cloudflare_email
nr_api_key = var.nr_api_key
access_key = var.access_key
secret_key = var.secret_key
vpc_id = var.vpc_id
instance_type = var.instance_type
vpc_cidr_block = var.vpc_cidr_block
public_subnet_cidrs = var.public_subnet_cidrs
pot_external_entropy = var.pot_external_entropy

}
51 changes: 51 additions & 0 deletions resources/mainnet/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
//output
output "rpc-indexer-node-ipv4-addresses" {
value = module.mainnet.rpc-indexer_node_public_ip
description = "RPC indexer node IPv4 Addresses"
}

output "nova-indexer-node-ipv4-addresses" {
value = module.mainnet.nova-indexer_node_public_ip
description = "Nova indexer node IPv4 Addresses"
}

output "farmer-node-ipv4-addresses" {
value = module.mainnet.farmer_node_public_ip
description = "Farmer node IPv4 Addresses"
}

output "bootstrap-node-ipv4-addresses" {
value = module.mainnet.bootstrap_node_public_ip
description = "Bootstrap node IPv4 Addresses"
}

output "bootstrap-node-evm-ipv4-addresses" {
value = module.mainnet.bootstrap_node_evm_public_ip
description = "EVM Bootstrap node IPv4 Addresses"
}

output "bootstrap-node-autoid-ipv4-addresses" {
value = module.mainnet.bootstrap_node_autoid_public_ip
description = "AutoID Bootstrap node IPv4 Addresses"
}

output "evm-node-ipv4-addresses" {
value = module.mainnet.domain_node_public_ip
description = "Domain node IPv4 Addresses"
}

output "autoid-node-ipv4-addresses" {
value = module.mainnet.autoid_node_public_ip
description = "AutoID node IPv4 Addresses"
}

output "rpc-node-ipv4-addresses" {
value = module.mainnet.rpc_node_public_ip
description = "RPC node IPv4 Addresses"
}

output "pot_external_entropy" {
value = var.pot_external_entropy
description = "Pot external entropy"

}
17 changes: 17 additions & 0 deletions resources/mainnet/terrafrom.tfvars.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# AWS access key used to create infrastructure
access_key = ""
# AWS secret key used to create AWS infrastructure
secret_key = ""
vpc_id = "mainnet-vpc"
vpc_cidr_block = "172.37.0.0/16"
public_subnet_cidrs = ["172.37.1.0/24"]
aws_key_name = "deployer"
ssh_user = "ubuntu"
disk_volume_size = 200
private_key_path = "~/.ssh/deployer.pem"
aws_region = ["us-east-1"]
azs = "us-east-1b"
cloudflare_email = ""
cloudflare_api_token = ""
nr_api_key = ""
farmer_reward_address = ""
Loading