Skip to content

Conversation

@tk-o
Copy link
Contributor

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

Lite PR

Tip: Review docs on the ENSNode PR process

Summary

  • Added the ENSRainbow Searchlight service instance to
    • Blue env
    • Green env
    • Yellow env

Why


Testing

  • Will test the PR by triggering a release to non-prod environments (Blue and Yellow).

Notes for Reviewer (Optional)

  • I've already added the following ENSNode repository secrets:
    • BLUE_ENSRAINBOW_SEARCHLIGHT_SVC_ID
    • GREEN_ENSRAINBOW_SEARCHLIGHT_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 29, 2026 11:14
@changeset-bot
Copy link

changeset-bot bot commented Jan 29, 2026

⚠️ No Changeset found

Latest commit: 9b4fb15

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
Copy link

vercel bot commented Jan 29, 2026

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

Project Deployment Review Updated (UTC)
admin.ensnode.io Ready Ready Preview, Comment Jan 29, 2026 11:42am
ensnode.io Ready Ready Preview, Comment Jan 29, 2026 11:42am
ensrainbow.io Ready Ready Preview, Comment Jan 29, 2026 11:42am

@coderabbitai
Copy link

coderabbitai bot commented Jan 29, 2026

📝 Walkthrough

Walkthrough

Adds a new ENSRAINBOW_SEARCHLIGHT service to the blue/green deployment workflow and introduces a second Terraform module instance (starlight) plus a svc_name_suffix variable to parameterize service and disk names.

Changes

Cohort / File(s) Summary
GitHub Actions Deployment
.github/workflows/deploy_ensnode_blue_green.yml
Adds ENSRAINBOW_SEARCHLIGHT_SVC_ID to environment selection, update_service_image calls, and final redeploy_service steps for both blue and green branches so the Searchlight service is updated/redeployed alongside ENSRAINBOW.
Terraform Root
terraform/main.tf
Adds a new module instance module "ensrainbow_starlight" sourcing ./modules/ensrainbow with svc_name_suffix = "-starlight", plus related render/environment/version and label_set settings.
Terraform Module
terraform/modules/ensrainbow/main.tf, terraform/modules/ensrainbow/variables.tf
Parameterizes service and disk names to append var.svc_name_suffix (e.g., ensrainbow${var.svc_name_suffix} and ensrainbow-data${var.svc_name_suffix}) and introduces new variable "svc_name_suffix" (string, default "").

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐇 I hopped in with a twirl and light,
A starlit twin to join the night,
Two services now march in tune,
Suffixes hum beneath the moon,
Bright deploys make my whiskers white.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change—adding ENSRainbow Starlight deployment configuration across multiple environments, which aligns with the primary objective of the changeset.
Description check ✅ Passed The description includes all required sections from the template: Summary, Why, Testing, Notes for Reviewer, and a completed Pre-Review Checklist. All sections are appropriately filled with relevant information.
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 infra/ensrainbow-starlight

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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@terraform/main.tf`:
- Around line 95-106: Rename the Terraform module block named
"ensrainbow_starligth" to the correct "ensrainbow_starlight" to fix the typo and
ensure consistency; update the module declaration identifier (module
"ensrainbow_starligth") to "ensrainbow_starlight" and search for any references
to that module name elsewhere (outputs, dependencies, or other modules) and
update them accordingly while leaving all arguments like render_environment_id,
render_region, ensnode_version, ensrainbow_volume_name, ensrainbow_label_set_id,
and ensrainbow_label_set_version unchanged.

In `@terraform/modules/ensrainbow/variables.tf`:
- Around line 19-22: The variable block for ensrainbow_volume_name has unaligned
attribute equals compared to other variables (e.g., db_schema_version); fix by
formatting the block so attributes align with the file's style (align `type` and
`description` equals signs) or simply run terraform fmt -recursive to normalize
formatting; target the variable "ensrainbow_volume_name" in variables.tf when
applying the change.

@tk-o tk-o changed the title Infra/ensrainbow starlight feat(ci): configure ENSRainbow Starlight deployment across environments Jan 29, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a second ENSRainbow instance (“Starlight” per PR/Terraform) alongside the existing ENSRainbow deployment, and updates deployment automation to handle the additional instance in Blue/Green.

Changes:

  • Parameterized ENSRainbow disk volume name in the Terraform module so multiple instances can use distinct volumes.
  • Added a second ENSRainbow module instantiation in terraform/main.tf intended for “starlight”.
  • Updated the Blue/Green Railway deploy workflow to update/redeploy an additional ENSRainbow service ID.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

File Description
terraform/modules/ensrainbow/variables.tf Adds ensrainbow_volume_name input for configurable disk naming.
terraform/modules/ensrainbow/main.tf Uses ensrainbow_volume_name for the Render disk resource.
terraform/main.tf Instantiates a second ENSRainbow module intended for a new label set (“starlight”).
.github/workflows/deploy_ensnode_blue_green.yml Adds handling for an additional ENSRainbow service instance in Blue/Green deployments.

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

Comment on lines +74 to +75
#ENSRAINBOW SEARCHLIGHT
echo "ENSRAINBOW_SEARCHLIGHT_SVC_ID="${{ secrets.GREEN_ENSRAINBOW_SEARCHLIGHT_SVC_ID }} >> "$GITHUB_ENV"
Copy link

Copilot AI Jan 29, 2026

Choose a reason for hiding this comment

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

PR description and Terraform refer to a "Starlight" ENSRainbow instance, but this workflow introduces "ENSRAINBOW_SEARCHLIGHT" naming/secrets. Please align the naming (either update the PR/Terraform to "Searchlight" or rename the workflow env var/secrets) to avoid deploying/updating the wrong service.

Copilot uses AI. Check for mistakes.
@tk-o tk-o force-pushed the infra/ensrainbow-starlight branch from dfcfb2b to 9b4fb15 Compare January 29, 2026 11:41
@tk-o tk-o changed the title feat(ci): configure ENSRainbow Starlight deployment across environments feat(ci): configure ENSRainbow Searchlight deployment across environments Jan 29, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@terraform/modules/ensrainbow/variables.tf`:
- Around line 25-29: Add a Terraform variable validation block for
svc_name_suffix to reject invalid formats: implement a validation block on
variable "svc_name_suffix" that allows either an empty string or a
hyphen-prefixed DNS-safe suffix (e.g. use a regex like
^(-[a-z0-9]([a-z0-9-]*[a-z0-9])?)?$) and provide a clear error_message
describing the allowed formats; this validation ensures the variable follows the
expected "-name" format or is empty and will fail fast with a helpful message.

Comment on lines +25 to +29
variable "svc_name_suffix" {
type = string
description = "Suffix to append to the service and resource names (e.g. '-starlight'). Use empty string for default."
default = ""
}
Copy link

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Add a guard to prevent invalid suffix formats.

A lightweight validation keeps invalid inputs from failing later at provider-level errors.

Proposed validation
 variable "svc_name_suffix" {
   type        = string
   description = "Suffix to append to the service and resource names (e.g. '-starlight'). Use empty string for default."
   default     = ""
+  validation {
+    condition     = var.svc_name_suffix == "" || startswith(var.svc_name_suffix, "-")
+    error_message = "svc_name_suffix must be empty or start with '-' (e.g., '-starlight')."
+  }
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
variable "svc_name_suffix" {
type = string
description = "Suffix to append to the service and resource names (e.g. '-starlight'). Use empty string for default."
default = ""
}
variable "svc_name_suffix" {
type = string
description = "Suffix to append to the service and resource names (e.g. '-starlight'). Use empty string for default."
default = ""
validation {
condition = var.svc_name_suffix == "" || startswith(var.svc_name_suffix, "-")
error_message = "svc_name_suffix must be empty or start with '-' (e.g., '-starlight')."
}
}
🤖 Prompt for AI Agents
In `@terraform/modules/ensrainbow/variables.tf` around lines 25 - 29, Add a
Terraform variable validation block for svc_name_suffix to reject invalid
formats: implement a validation block on variable "svc_name_suffix" that allows
either an empty string or a hyphen-prefixed DNS-safe suffix (e.g. use a regex
like ^(-[a-z0-9]([a-z0-9-]*[a-z0-9])?)?$) and provide a clear error_message
describing the allowed formats; this validation ensures the variable follows the
expected "-name" format or is empty and will fail fast with a helpful message.

@tk-o
Copy link
Contributor Author

tk-o commented Jan 29, 2026

Replaced with #1579

@tk-o tk-o closed this Jan 29, 2026
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.

2 participants