Skip to content

Conversation

@ktechmidas
Copy link
Contributor

Issue being fixed or feature implemented

This PR adds comprehensive IPv6 support to the Dash network deployment infrastructure, allowing instances to have both
IPv4 and IPv6 connectivity. Additionally, it fixes several deployment issues including the broken firstRun.js script and
logs_count configuration problems.

What was done?

IPv6 Support (Major Feature)

  • Added enable_ipv6 variable to control IPv6 functionality (default: false)
  • Updated VPC to request IPv6 CIDR blocks when enabled
  • Added IPv6 routes for internet gateway connectivity
  • Updated all subnets to allocate IPv6 CIDR blocks and auto-assign addresses
  • Enhanced security groups to support IPv6 traffic alongside IPv4
  • Implemented non-destructive IPv6 assignment using null_resource provisioners to avoid instance replacement
  • Added IPv6 address output for monitoring and reference

Bug Fixes

  • Fixed firstRun.js script: Resolved argument passing issue causing "networks/undefined.yml" errors
  • Fixed logs_count handling: Updated Route53 record and output logic to handle logs_count=0 without errors
  • Improved error handling: Added safety checks and better error reporting in configuration scripts

Configuration Updates

  • Enabled IPv6 by default in testnet.tfvars (enable_ipv6 = true)
  • Fixed load tester key naming consistency (load-test- vs load-tester-)
  • Improved file I/O operations to prevent script hanging

How Has This Been Tested?

  • IPv6 Connectivity: Verified all 91 testnet instances received IPv6 addresses without replacement
  • Ping Test: Successfully tested IPv6 connectivity with manual ping tests
  • Infrastructure Deployment: Tested ./bin/deploy -i testnet completes without errors
  • Configuration Sync: Verified firstRun.js properly synchronizes mixer/load tester counts between .tfvars and .yml
    files
  • Logs Disabled: Confirmed deployment works correctly with logs_count=0

Breaking Changes

None. The IPv6 feature is controlled by the enable_ipv6 variable (default: false), making it backward compatible.
Existing deployments will continue to work unchanged.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have made corresponding changes to the documentation

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

- Add missing trailing comma in yaml.dump options
- Fix line length by breaking long comment into multiple lines
- Remove trailing spaces
- Replace console.error with proper error throwing
- Replace console.log with comment to avoid linter warnings
Copy link
Collaborator

@vivekgsharma vivekgsharma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ktechmidas ktechmidas merged commit 2759ff2 into v1.0-dev Jun 6, 2025
1 check passed
@ktechmidas ktechmidas deleted the feat/ipv6 branch June 6, 2025 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants