Skip to content
This repository was archived by the owner on Aug 5, 2026. It is now read-only.

feat(ci): include ENSNode v2 Sepolia instance in workflows config - #1587

Merged
tk-o merged 9 commits into
mainfrom
feat/ensnode-v2-sepolia-instance
Jan 30, 2026
Merged

feat(ci): include ENSNode v2 Sepolia instance in workflows config#1587
tk-o merged 9 commits into
mainfrom
feat/ensnode-v2-sepolia-instance

Conversation

@tk-o

@tk-o tk-o commented Jan 30, 2026

Copy link
Copy Markdown
Contributor

Lite PR

Tip: Review docs on the ENSNode PR process

Summary

  • Updated deployment workflow for the Blue/Green environment
  • Updated the Blue/Green environment switch for production
  • Updated the Yellow environment terraform config to introduce the ENSNode v2 Sepolia services
  • Removed DNS management from CI workflows

Why


Testing

  • To be tested as worfklow run after this PR gets merged.

Notes for Reviewer (Optional)

  • I've added the following repo secretes:
    • GREEN_V2_SEPOLIA_API_SVC_ID
    • GREEN_V2_SEPOLIA_INDEXER_SVC_ID
    • BLUE_V2_SEPOLIA_API_SVC_ID
    • BLUE_V2_SEPOLIA_INDEXER_SVC_ID

Pre-Review Checklist (Blocking)

  • This PR does not introduce significant changes and is low-risk to review quickly.
  • Relevant changesets are included (or are not required)

Copilot AI review requested due to automatic review settings January 30, 2026 12:04
@changeset-bot

changeset-bot Bot commented Jan 30, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 33066c1

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercel Bot commented Jan 30, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
admin.ensnode.io Ready Ready Preview, Comment Jan 30, 2026 2:50pm
ensnode.io Ready Ready Preview, Comment Jan 30, 2026 2:50pm
ensrainbow.io Ready Ready Preview, Comment Jan 30, 2026 2:50pm

@coderabbitai

coderabbitai Bot commented Jan 30, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

Adds v2-sepolia deployment and routing: GitHub Actions gains V2_SEPOLIA env vars, deploy/redeploy steps, and Redis Traefik router entries; Terraform adds a v2-sepolia indexer instance and local FQDNs, and removes Route53 DNS validation records and related locals; README comment updated.

Changes

Cohort / File(s) Summary
Blue/Green Deployment Workflow
\.github/workflows/deploy_ensnode_blue_green.yml
Adds V2_SEPOLIA env vars (V2_SEPOLIA_API_SVC_ID, V2_SEPOLIA_INDEXER_SVC_ID, V2_SEPOLIA_DATABASE_SCHEMA) and includes V2_SEPOLIA API/INDEXER in deploy/redeploy flows for green/blue.
Switch Traefik Routing Workflow
\.github/workflows/deploy_switch_ensnode_environment.yml
Inserts Redis SET commands to configure Traefik routers/services for v2-sepolia (API and indexer) alongside existing SEPOLIA routing entries.
Terraform indexer config
terraform/main.tf
Adds local.ensindexer_instances.v2-sepolia with ensnode_indexer_type = "v2-sepolia", database_schema = "v2SepoliaSchema-${var.ensnode_version}", plugins = "ensv2,protocol-acceleration", namespace = "sepolia", render_instance_plan = "starter", and subgraph_compat = false.
Terraform module locals & usage
terraform/modules/ensadmin/main.tf, terraform/modules/ensindexer/main.tf
Introduces ensadmin_fqdn, ensindexer_fqdn, and ensapi_fqdn locals and uses them for ENSADMIN public URL, env vars, and custom_domains.
Terraform DNS removals
terraform/modules/ensadmin/dns.tf, terraform/modules/ensindexer/dns.tf
Removes Route53 data sources, local FQDN locals, and aws_route53_record resources previously used for DNS validation for ensadmin, ensindexer, and ensapi.
Terraform docs
terraform/README.md
Removes a bullet about DNS configuration/management and updates hosted zone comment/context.

Sequence Diagram(s)

sequenceDiagram
    participant CI as CI (GitHub Actions)
    participant Redis as Redis (Traefik KV)
    participant Traefik as Traefik
    participant API as V2_SEPOLIA API
    participant Indexer as V2_SEPOLIA Indexer
    participant DB as Database

    CI->>Redis: SET traefik/http/routers/v2-sepolia-api-router/service ...
    CI->>Redis: SET traefik/http/routers/v2-sepolia-indexer-router/service ...
    CI->>API: Trigger deploy/redeploy (V2_SEPOLIA_API_SVC_ID)
    CI->>Indexer: Trigger deploy/redeploy (V2_SEPOLIA_INDEXER_SVC_ID)
    Indexer->>DB: Connect using schema "v2SepoliaSchema-${var.ensnode_version}"
    Traefik->>API: Route incoming requests to V2_SEPOLIA API
    Traefik->>Indexer: Route indexer traffic to V2_SEPOLIA Indexer
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I hopped through CI with a jaunty beat,
New v2 paths laid where routers meet.
Schemas set and services twined,
Old records gone, new hosts aligned.
Thump-thump — deployments neat.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: adding ENSNode v2 Sepolia instance support to workflows configuration, which aligns with the primary objectives across multiple modified files.
Description check ✅ Passed The description follows the template structure with all required sections (Summary, Why, Testing, Notes, Checklist) completed. However, testing is marked as deferred to post-merge workflow runs rather than being completed before review.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/ensnode-v2-sepolia-instance

Comment @coderabbitai help to get the list of available commands and usage tips.

@tk-o tk-o left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Self-review completed

@tk-o
tk-o marked this pull request as ready for review January 30, 2026 12:06
@tk-o
tk-o requested a review from a team as a code owner January 30, 2026 12:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds configuration for the new ENSNode v2 Sepolia instance across the deployment infrastructure, enabling it to be deployed and managed alongside existing instances in the Blue/Green deployment workflow.

Changes:

  • Added v2-sepolia instance configuration to Terraform with appropriate database schema, plugins, and namespace settings
  • Updated Blue/Green deployment workflow to include v2-sepolia service deployment, image updates, and redeployment steps
  • Added v2-sepolia routing configuration to the environment switch workflow for Traefik load balancer

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
terraform/main.tf Adds v2-sepolia configuration block defining indexer type, database schema, plugins (ensv2, protocol-acceleration), and deployment settings
.github/workflows/deploy_ensnode_blue_green.yml Adds v2-sepolia service ID environment variables for both Blue and Green environments, updates service images, sets database schema variable, and includes redeployment steps
.github/workflows/deploy_switch_ensnode_environment.yml Adds Redis routing configuration for v2-sepolia API and indexer services with load balancer header routing

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +145 to +146
update_service_image ${RAILWAY_ENVIRONMENT_ID} ${V2_SEPOLIA_API_SVC_ID} ${{ env.ENSAPI_DOCKER_IMAGE }}
update_service_image ${RAILWAY_ENVIRONMENT_ID} ${V2_SEPOLIA_INDEXER_SVC_ID} ${{ env.ENSINDEXER_DOCKER_IMAGE }}

Copilot AI Jan 30, 2026

Copy link

Choose a reason for hiding this comment

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

The spacing alignment for the V2_SEPOLIA service ID variables is inconsistent with the established pattern. Looking at lines 136-143, the pattern uses different spacing to align the final parameter. Specifically:

  • Line 136: ${ALPHA_API_SVC_ID} (13 spaces before $)
  • Line 142: ${ALPHA_SEPOLIA_API_SVC_ID} (5 spaces before $)
  • Line 145: ${V2_SEPOLIA_API_SVC_ID} (9 spaces before $)

The V2_SEPOLIA entries should follow the same alignment pattern as other similar-length variables. Based on the pattern, line 145 should use fewer spaces to better align with the others.

Suggested change
update_service_image ${RAILWAY_ENVIRONMENT_ID} ${V2_SEPOLIA_API_SVC_ID} ${{ env.ENSAPI_DOCKER_IMAGE }}
update_service_image ${RAILWAY_ENVIRONMENT_ID} ${V2_SEPOLIA_INDEXER_SVC_ID} ${{ env.ENSINDEXER_DOCKER_IMAGE }}
update_service_image ${RAILWAY_ENVIRONMENT_ID} ${V2_SEPOLIA_API_SVC_ID} ${{ env.ENSAPI_DOCKER_IMAGE }}
update_service_image ${RAILWAY_ENVIRONMENT_ID} ${V2_SEPOLIA_INDEXER_SVC_ID} ${{ env.ENSINDEXER_DOCKER_IMAGE }}

Copilot uses AI. Check for mistakes.
@greptile-apps

greptile-apps Bot commented Jan 30, 2026

Copy link
Copy Markdown
Contributor

Greptile Overview

Greptile Summary

This PR integrates the newly created ENSNode v2 Sepolia instances into the blue/green deployment infrastructure by adding the necessary configuration across workflows and Terraform files.

Changes Made:

  • Added V2_SEPOLIA_API_SVC_ID and V2_SEPOLIA_INDEXER_SVC_ID environment variables for both Blue and Green environments
  • Configured docker image updates, database schema settings (v2SepoliaSchema${TAG}), and redeployment steps for V2-SEPOLIA services
  • Added Traefik routing rules in Redis for both standard and load-balanced header routers to enable traffic switching between Blue/Green environments
  • Defined v2-sepolia instance in Terraform with ensv2,protocol-acceleration plugins, sepolia namespace, and subgraph_compat: false

Consistency:
The changes follow the existing pattern established by other instances (ALPHA, MAINNET, ALPHA-SEPOLIA, SEPOLIA) and are applied consistently across all three files. The naming conventions and structure match the existing codebase standards.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk - it follows established patterns and adds infrastructure configuration without modifying existing logic
  • The changes are straightforward infrastructure additions that mirror existing patterns for other Sepolia instances. All modifications are additive (no removal or modification of existing services), follow consistent naming conventions, and align with the documented purpose of adding V2 Sepolia support. The PR author has confirmed that required secrets have been added to the repository.
  • No files require special attention - all changes follow established patterns

Important Files Changed

Filename Overview
.github/workflows/deploy_ensnode_blue_green.yml Added V2-SEPOLIA instance environment variables, docker image updates, database schema configuration, and redeployment steps for both Blue and Green environments
.github/workflows/deploy_switch_ensnode_environment.yml Added V2-SEPOLIA Traefik routing configuration for both standard and load-balanced header routers to enable blue/green environment switching
terraform/main.tf Added v2-sepolia ENSIndexer instance configuration with ensv2 and protocol-acceleration plugins, using sepolia namespace with subgraph compatibility disabled

Sequence Diagram

sequenceDiagram
    participant GHA as GitHub Actions
    participant Railway as Railway API
    participant Redis as Redis (Traefik)
    participant V2Sepolia as V2-SEPOLIA Services
    participant Terraform as Terraform Config

    Note over GHA,Terraform: Deployment Flow
    
    GHA->>GHA: Trigger deploy_ensnode_blue_green workflow
    GHA->>GHA: Calculate environment (Blue/Green)
    GHA->>GHA: Set V2_SEPOLIA_API_SVC_ID
    GHA->>GHA: Set V2_SEPOLIA_INDEXER_SVC_ID
    
    GHA->>Railway: Update V2-SEPOLIA API docker image
    GHA->>Railway: Update V2-SEPOLIA Indexer docker image
    
    GHA->>Railway: Set V2-SEPOLIA_DATABASE_SCHEMA variable
    
    GHA->>Railway: Redeploy V2-SEPOLIA API service
    GHA->>Railway: Redeploy V2-SEPOLIA Indexer service
    
    Railway-->>V2Sepolia: Services redeployed with new config
    
    Note over GHA,Redis: Environment Switch Flow
    
    GHA->>GHA: Trigger deploy_switch_ensnode_environment
    GHA->>Redis: Update v2-sepolia-api-router routing
    GHA->>Redis: Update v2-sepolia-indexer-router routing
    GHA->>Redis: Update lb-header-v2-sepolia-api-router routing
    GHA->>Redis: Update lb-header-v2-sepolia-indexer-router routing
    
    Redis-->>V2Sepolia: Traffic routed to active environment
    
    Note over Terraform: Infrastructure Configuration
    
    Terraform->>Terraform: Define v2-sepolia instance config
    Terraform->>Terraform: Set plugins: ensv2,protocol-acceleration
    Terraform->>Terraform: Set namespace: sepolia
    Terraform->>Terraform: Set subgraph_compat: false
Loading

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

3 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

Comment thread .github/workflows/deploy_ensnode_blue_green.yml Outdated

@lightwalker-eth lightwalker-eth left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@tk-o Thank you! Shared one small suggestion. Please merge when ready ✅

update_service_image ${RAILWAY_ENVIRONMENT_ID} ${ALPHA_SEPOLIA_INDEXER_SVC_ID} ${{ env.ENSINDEXER_DOCKER_IMAGE }}
#V2-SEPOLIA
update_service_image ${RAILWAY_ENVIRONMENT_ID} ${V2_SEPOLIA_API_SVC_ID} ${{ env.ENSAPI_DOCKER_IMAGE }}
update_service_image ${RAILWAY_ENVIRONMENT_ID} ${V2_SEPOLIA_INDEXER_SVC_ID} ${{ env.ENSINDEXER_DOCKER_IMAGE }}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The AI feedback on aligning the spacing here looks like a nice idea 👍

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread terraform/modules/ensindexer/main.tf

@lightwalker-eth lightwalker-eth left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@tk-o One other small suggestion

Comment thread terraform/main.tf Outdated
Co-authored-by: lightwalker.eth <126201998+lightwalker-eth@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/deploy_switch_ensnode_environment.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants