Skip to content

Single node deployment based for sentry, validator, and telemetry.

License

Notifications You must be signed in to change notification settings

insight-w3f/terraform-polkadot-aws-node

Repository files navigation

terraform-polkadot-aws-node

This module sets up single node deployments for polkadot, but can also be used to deploy nodes in a multi-node configuration. Options include validator, API, and source of truth nodes.

Usage

module "network" {
  source = "github.com/insight-infrastructure/terraform-aws-polkadot-network.git?ref=master"
  sentry_enabled = true
  num_azs = 1
}

module "default" {
  source            = "../.."
  public_key        = var.public_key
  subnet_id         = module.network.public_subnets[0]
  security_group_id = module.network.sentry_security_group_id
  private_key_path  = var.private_key_path
  create_ansible    = var.create_ansible
}

Examples

Known issues

No issue is creating limit on this module.

Requirements

No requirements.

Providers

Name Version
aws n/a
random n/a

Inputs

Name Description Type Default Required
base_path Alternate base path for Polkadot client string "" no
chain Which Polkadot chain to join string "polkadot" no
chain_stub Short-name of the Polkadot chain to join, i.e. kusama = ksmm3, polkadot = polkadot. string "polkadot" no
consul_enabled Bool to enable Consul bool true no
create Boolean to make module or not bool true no
create_ansible Boolean to make module or not bool true no
default_telemetry_enabled Bool to enable telemetry submission to telemetry.polkadot.io bool false no
environment The environment string "" no
health_check_enabled Bool to enable client health check agent bool true no
health_check_port Port number for the health check string "5500" no
instance_count Iteration number for this instance string "0" no
instance_type Instance type string "t2.micro" no
key_name The name of the preexisting key to be used instead of the local public_key_path string "" no
logging_filter String for polkadot logging filter string "sync=trace,afg=trace,babe=debug" no
monitoring Boolean for cloudwatch bool false no
mount_volumes Bool to enable non-root volume mounting bool false no
name The name of the deployment string "polkadot-api" no
namespace The namespace to deploy into string "" no
network_name The network name, ie kusama / mainnet string "" no
network_settings Map of network settings to apply. Use either this or set individual variables. map(map(string)) null no
network_stub The stub name of the Polkadot chain (polkadot = polkadot, kusama = ksmcc3) string "ksmcc3" no
node_exporter_enabled Bool to enable node exporter bool true no
node_exporter_hash SHA256 hash of Node Exporter binary string "b2503fd932f85f4e5baf161268854bf5d22001869b84f00fd2d1f57b51b72424" no
node_exporter_password Password for node exporter string "node_exporter_password" no
node_exporter_url URL to Node Exporter binary string "https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz" no
node_exporter_user User for node exporter string "node_exporter_user" no
node_name Name of the node string "" no
node_purpose What type of node are you deploying? (validator/library/truth) string "library" no
owner Owner of the infrastructure string "" no
polkadot_additional_common_flags Optional common flags for Polkadot client string "" no
polkadot_additional_validator_flags Optional validator flags for Polkadot client string "" no
polkadot_client_hash SHA256 hash of Polkadot client binary string "cdf31d39ed54e66489d1afe74ed7549d5bcdf8ff479759e8fc476d17d069901e" no
polkadot_client_url URL to Polkadot client binary string "https://github.com/w3f/polkadot/releases/download/v0.8.23/polkadot" no
polkadot_prometheus_port Port number for the Prometheus Metrics exporter built into the Polkadot client string "9610" no
polkadot_restart_day Client cron restart day string "" no
polkadot_restart_enabled Bool to enable client restart cron job bool false no
polkadot_restart_hour Client cron restart hour string "" no
polkadot_restart_minute Client cron restart minute string "" no
polkadot_restart_month Client cron restart month string "" no
polkadot_restart_weekday Client cron restart weekday string "" no
private_key_path Path to private key string "" no
project Name of the project for node name string "project" no
public_key The public ssh key. key_name takes precidence string "" no
root_volume_size Root volume size string 0 no
rpc_api_port Port number for the JSON RPC API string "9933" no
security_group_id The id of the security group to run in string n/a yes
source_of_truth_enabled Bool to enable SoT sync (for use with library nodes) bool false no
ssh_user Username for SSH string "ubuntu" no
stage The stage of the deployment string "" no
storage_driver_type Type of EBS storage the instance is using (nitro/standard) string "standard" no
subnet_id The id of the subnet. string "" no
sync_aws_access_key_id AWS access key ID for SoT sync string "" no
sync_aws_secret_access_key AWS access key for SoT sync string "" no
sync_bucket_uri S3 bucket URI for SoT sync string null no
sync_region AWS region for SoT sync string "" no
telemetry_url WSS URL for telemetry string "" no
wss_api_port Port number for the Websockets API string "9944" no

Outputs

Name Description
instance_id n/a
private_ip n/a
public_ip n/a
reader_aws_access_key_id n/a
reader_aws_secret_access_key n/a
security_group_id n/a
subnet_id n/a
sync_aws_access_key_id n/a
sync_aws_secret_access_key n/a
sync_bucket_uri n/a
user_data n/a

Authors

Module managed by robc-io

Credits

License

Apache 2 Licensed. See LICENSE for full details.

About

Single node deployment based for sentry, validator, and telemetry.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published