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

feat(ci): add external static IPs to release nodes #8891

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

gustavovalverde
Copy link
Member

@gustavovalverde gustavovalverde commented Sep 25, 2024

Motivation

When doing our full sync test on Testnet, it takes more time than expected as it tries to connect to healthy peers, which are commonly not available in Testnet. To address this, we need stable Testnet nodes that are always available, up to date, and synced.

This PR implements the infrastructure changes needed to support long-lived nodes with static IP addresses, which will provide reliable peer connections for the network.

This also deploys Mainnet nodes.

Closes #8763

Specifications & References

Solution

  1. Static IP Address Support:

    • Add functionality to retrieve and use static IP addresses for long-running nodes
    • Configure static IPs only for release and manual workflow deployments
    • Use consistent naming convention (zebra-${NETWORK}) for IP resources
  2. Deployment Workflow Improvements:

    • Implement dynamic network selection matrix for flexible deployments
    • Add manual deployment trigger support via workflow_dispatch
    • Update environment labeling (qa for manual deployments, staging for others)
    • Improve log file handling with configurable paths
  3. Infrastructure Updates:

    • Update GCP configuration syntax for better compatibility
    • Remove redundant deploy-instance job in favor of unified deployment approach
    • Streamline failure handling and reporting
  4. Manual Zcashd Deploy Updates:

    • Update subnet configuration syntax for consistency across workflows

Tests

Manually tested here: https://github.com/ZcashFoundation/zebra/actions/runs/13113699624

Follow-up Work

  • Add health-checking into Zebra to confirm unattended nodes are running as expected
  • Update DNS records to point to the new static IPs

PR Author's Checklist

PR Reviewer's Checklist

  • The PR Author's checklist is complete.
  • The PR resolves the issue.

@gustavovalverde gustavovalverde added A-infrastructure Area: Infrastructure changes A-devops Area: Pipelines, CI/CD and Dockerfiles I-slow Problems with performance or responsiveness C-feature Category: New features P-High 🔥 labels Sep 25, 2024
@gustavovalverde gustavovalverde self-assigned this Sep 25, 2024
@github-actions github-actions bot added the C-trivial Category: A trivial change that is not worth mentioning in the CHANGELOG label Sep 25, 2024
@oxarbitrage oxarbitrage added the do-not-merge Tells Mergify not to merge this PR label Oct 10, 2024
@gustavovalverde gustavovalverde changed the base branch from main to imp-cd-disk-mgm October 14, 2024 11:05
Base automatically changed from imp-cd-disk-mgm to main October 17, 2024 13:08
@gustavovalverde gustavovalverde removed the do-not-merge Tells Mergify not to merge this PR label Oct 31, 2024
@arya2 arya2 added do-not-merge Tells Mergify not to merge this PR and removed do-not-merge Tells Mergify not to merge this PR labels Dec 5, 2024
@gustavovalverde gustavovalverde force-pushed the ext-address-nodes branch 2 times, most recently from 1b32f43 to 129a345 Compare January 16, 2025 15:31
This change enhances the GCP deployment workflows with several improvements:

- Add static IP address support for long-running nodes
- Implement dynamic network selection matrix
- Add manual deployment trigger support
- Update GCP configuration syntax for better compatibility
- Remove redundant deploy-instance job
- Improve environment labeling and log file handling

The static IP addresses will help maintain stable network connectivity
for long-running nodes, particularly important for testnet peer discovery.

Fixes #8763
@gustavovalverde gustavovalverde removed the do-not-merge Tells Mergify not to merge this PR label Feb 4, 2025
@gustavovalverde gustavovalverde marked this pull request as ready for review February 4, 2025 08:30
@gustavovalverde gustavovalverde requested a review from a team as a code owner February 4, 2025 08:30
@gustavovalverde gustavovalverde requested review from arya2 and removed request for a team February 4, 2025 08:30
@gustavovalverde gustavovalverde changed the title feat(cd): add external static IPs to release nodes feat(ci): add external static IPs to release nodes Feb 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-devops Area: Pipelines, CI/CD and Dockerfiles A-infrastructure Area: Infrastructure changes C-feature Category: New features C-trivial Category: A trivial change that is not worth mentioning in the CHANGELOG I-slow Problems with performance or responsiveness P-High 🔥
Projects
None yet
Development

Successfully merging this pull request may close these issues.

devops: deploy long-lived Testnet nodes with static IP addresses
3 participants