|
| 1 | +module "base_ec2_instance" { |
| 2 | + source = "./modules/l2_op_stack_chains" |
| 3 | + |
| 4 | + company = var.company |
| 5 | + current_account_id = local.current_account_id |
| 6 | + project = var.project |
| 7 | + parent_project = var.parent_project |
| 8 | + environment = var.environment |
| 9 | + cloudwatch_namespace = local.cloudwatch_namespace |
| 10 | + bash_scripts_folder = "${path.module}/../bash" |
| 11 | + install_docker_script_name = "install_docker.sh" |
| 12 | + configure_ssm_agent_script_name = "configure_ssm_agent_logs.sh" |
| 13 | + region = var.region |
| 14 | + load_balancer = var.load_balancer |
| 15 | + |
| 16 | + node = { |
| 17 | + alarm_memory_threshold_percentage = var.base_node.alarm_memory_threshold_percentage # 80 |
| 18 | + alarm_disk_used_threshold_percentage = var.base_node.alarm_disk_used_threshold_percentage # 90 |
| 19 | + ami_id = var.base_node.ami_id # "ami-0122205e4fe2524d5" # ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-arm64-server-20250821 |
| 20 | + associate_public_ip_address = var.base_node.associate_public_ip_address # true |
| 21 | + availability_zone = var.base_node.availability_zone # "a" |
| 22 | + chain = var.base_node.chain |
| 23 | + # checkpoint_sync_url = var.base_node.checkpoint_sync_url |
| 24 | + ebs_optimized = var.base_node.ebs_optimized |
| 25 | + ebs_volume = var.base_node.ebs_volume |
| 26 | + instance_type = var.base_node.instance_type |
| 27 | + logs = { |
| 28 | + retention_days = var.base_node.logs.retention_days |
| 29 | + } |
| 30 | + key_pair_pem_file_path = "${path.module}/ethereum.pem" |
| 31 | + monitoring = var.base_node.monitoring |
| 32 | + root_block_device = var.base_node.root_block_device |
| 33 | + security_group_ids = [ |
| 34 | + local.vpc_default_security_group_id, |
| 35 | + aws_security_group.ethereum_ssh.id, |
| 36 | + aws_security_group.ethereum_nginx.id, |
| 37 | + aws_security_group.ethereum_public_p2p.id, |
| 38 | + aws_security_group.op_node_public_p2p.id, |
| 39 | + ] |
| 40 | + ssh_port = var.base_node.ssh_port |
| 41 | + subnet_id = local.public_subnets_per_availability_zone[var.base_node.availability_zone].id |
| 42 | + user = var.base_node.user |
| 43 | + user_data = templatefile("${local.templates_folder}/ethereum_user_data_cloud_init.sh.tftpl", { |
| 44 | + ssh_port = var.base_node.ssh_port |
| 45 | + user = var.base_node.user |
| 46 | + }) |
| 47 | + } |
| 48 | + |
| 49 | + node_name = var.base_node.chain |
| 50 | + node_iam_instance_profile_name = aws_iam_instance_profile.ethereum_node.name |
| 51 | + node_key_pair_name = aws_key_pair.ethereum.key_name |
| 52 | + node_subnet_id = local.public_subnets_per_availability_zone[var.base_node.availability_zone].id |
| 53 | + node_user_data = templatefile("${local.templates_folder}/ethereum_user_data_cloud_init.sh.tftpl", { |
| 54 | + ssh_port = var.base_node.ssh_port |
| 55 | + user = var.base_node.user |
| 56 | + }) |
| 57 | + |
| 58 | + ssm_agent_log_file_configuration = "${path.module}/../ssm-agent-seelog.xml" |
| 59 | + |
| 60 | + gf_security_admin_user = var.gf_security_admin_user |
| 61 | + gf_security_admin_password = var.gf_security_admin_password |
| 62 | + prometheus_admin_password = var.prometheus_admin_password |
| 63 | + prometheus_admin_password_bcrypted = var.prometheus_admin_password_bcrypted |
| 64 | + |
| 65 | + sequencer_http = var.base_node.sequencer_http |
| 66 | + beacon_node_http_endpoint = "http://${aws_instance.ethereum.private_ip}:5052" |
| 67 | + op_reth_version = var.base_node.op_reth_version |
| 68 | + op_node_version = var.base_node.op_node_version |
| 69 | + op_node_network = var.base_node.op_node_network |
| 70 | + l1_rpc = "http://${aws_instance.ethereum.private_ip}:8545" |
| 71 | + |
| 72 | + nginx = var.nginx |
| 73 | + |
| 74 | + vpc_id = data.aws_vpc.main.id |
| 75 | + |
| 76 | + public_subnet_ids = [ |
| 77 | + for subnet in local.public_subnets : subnet.id |
| 78 | + ] |
| 79 | + |
| 80 | + load_balancer_security_group_ids = [ |
| 81 | + local.vpc_default_security_group_id, |
| 82 | + data.aws_security_group.http_80.id, |
| 83 | + data.aws_security_group.https_443.id |
| 84 | + ] |
| 85 | + |
| 86 | + load_balancer_certificate_arn = data.aws_acm_certificate.wildcard_talentprotocol_com.arn |
| 87 | + |
| 88 | + private_zone_id = data.aws_route53_zone.talent_protocol_internal.zone_id |
| 89 | + |
| 90 | + private_zone_name = data.aws_route53_zone.talent_protocol_internal.name |
| 91 | +} |
| 92 | + |
| 93 | +output "base_ec2_instance_ssh_connect" { |
| 94 | + value = module.base_ec2_instance.ec2_instance_ssh_connect |
| 95 | + description = "SSH command to connect to the base EC2 instance" |
| 96 | +} |
0 commit comments