Skip to content

leb4r/terraform-aws-cardano-node

Repository files navigation

terraform-aws-cardano-node

Terraform module that provisions infrastructure on AWS to run cardano-node.

Security

This project has not be audited for security by a third-party. Use at your own discretion.

Usage

This example my be using a version that is out-of-date, check the registry page for the most recent usage.

module "cardano-node" {
  source  = "leb4r/cardano-node/aws"
  version = "1.0.0"
  # insert the required variables here
}

Requirements

Name Version
terraform >= 0.13.0
aws >= 3.24
cloudinit >= 2.2.0

Providers

Name Version
aws 3.62.0

Modules

Name Source Version
config ./modules/config n/a
dns ./modules/dns n/a
iam ./modules/iam n/a
kms ./modules/kms n/a
logs ./modules/logs n/a
node ./modules/node n/a
storage ./modules/storage n/a

Resources

Name Type
aws_subnet.this data source

Inputs

Name Description Type Default Required
associate_public_ip_address Set to false to only create allocate a private IP address for the node bool true no
backup_cold_storage_after Specifies the number of days after creation that a recovery point is moved to cold storage number 30 no
backup_delete_after Specifies the number of days after creation that a recovery point is deleted. Must be 90 days greater than cold_storage_after number 180 no
backup_schedule A CRON expression specifying when AWS Backup initiates a backup job string "cron(0 12 * * ? *)" no
cardano_node_image Container image to use for the node string "docker.io/inputoutput/cardano-node" no
cardano_node_network The cardano network to connect to (e.g. mainnet or testnet) string "mainnet" no
cardano_node_port The port to listen for communication on number 3001 no
cardano_node_topology_json JSON string to be used as topology config string "" no
cardano_node_version Version of cardano-node to run string "1.30.1" no
create_kms_key Set to false to use separate KMS key bool true no
create_route53_record Set to true to create an A record in Route 53 for the EC2 instance bool false no
data_volume_size Size of data volume of the node number 30 no
ebs_optimized Set to false is disable EBS optimized feature bool true no
enable_monitoring Set to false to disable enhanced monitoring for node bool true no
instance_type The type of instance to use for the node string "t3.large" no
kms_key_arn The ARN of the KMS CMK to use for encryption string "" no
log_retention_in_days The number of days to keep logs in the Log Group number 30 no
name Canocial name to give to resources string "cardano-node" no
prometheus_ingress_cidrs Comma-delimited list of CIDR blocks from which to allow Prometheus traffic on string "0.0.0.0/0" no
root_volume_size Size of root volume of the node number 8 no
route53_record_name Name of the record to create string "" no
route53_zone_id ID of the Route 53 Zone to create record in string "" no
subnet_id ID of Subnet to deploy node in string n/a yes
tags Map of tags to apply to resources map(string) {} no
vpc_id ID of VPC to deploy node in string n/a yes

Outputs

Name Description
config_bucket_name Name of S3 bucket used to store config
data_volume_id ID of EBS volume used for data storage
dns_fqdn FQDN of the node
iam_role_name Name of IAM role used by the EC2 instance
instance_id ID of the EC2 instance where cardano-node is runner
security_group_id ID of the Security Group used by EC2 instance