Skip to content

fcvm-metal-arm: a second public IPv4 address, to switch over to - #666

Merged
ejc3 merged 3 commits into
mainfrom
fcvm-arm-second-ip
Oct 25, 2026
Merged

ejc3 merged 3 commits into
mainfrom
fcvm-arm-second-ip

Conversation

@ejc3

@ejc3 ejc3 commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Adds a second inbound public IPv4 address to the ARM metal host through a secondary private address on its managed ENI. The original public address remains the outbound address; cutover and retirement of that address belong to a later change.

The DNS-test token and GPU/runner SSH allowlists admit both addresses. A managed State Manager association writes the secondary /32 into a netplan drop-in and adds it live without netplan apply or a networking restart. The drop-in survives ordinary reboots. Invalid generated configuration is rolled back before any live address change.

Validation: secondary-address behavior tests (including failure rollback), GPU launch boundaries, dev credential boundaries, DNS token, runner IAM and Ohio preparation tests pass. A native netplan generate --root-dir probe confirmed that the boot unit retains both DHCP and the secondary /32. CI also runs the new regression tests. Terraform formatting passes; live plan and verification follow merge.

- firecracker-dev.tf: one secondary private IPv4 address on the box's ENI
  (private_ips_count = 1), a new Elastic IP (firecracker_dev_next)
  associated with it, local.firecracker_dev_public_ips holding both public
  addresses, and an output for the new one
- fcvm-dns-test.tf, gpu-box.tf, ohio.tf, runner-vpc.tf: admit both addresses
  wherever the box's address is allowlisted
- scripts/test-*.py: the three tests that pin those allowlists name the new
  address

Outbound traffic still leaves through the current address. The switch is a
later change: associate the new address with the primary private address
and release the old one.

Tested: terraform validate (1.10.3); test-fcvm-dns-test.py,
test-runner-iam-boundary.py, test-ohio-runner-prep.py,
test-dev-credential-boundary.py
@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3458819b-560f-490b-b87b-20fac2e352aa

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 19219903-4a30-4a12-85ba-3f498d0038d7
Commits

Reviewing files that changed from the base of the PR and between 63134ef and c27ca7d.

Files selected for processing: 8
  • fcvm-dns-test.tf
  • firecracker-dev.tf
  • gpu-box.tf
  • ohio.tf
  • runner-vpc.tf
  • scripts/test-fcvm-dns-test.py
  • scripts/test-ohio-runner-prep.py
  • scripts/test-runner-iam-boundary.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

Terraform configures a second public IP for the Firecracker dev instance. DNS client CIDRs and SSH ingress rules include the new address, and tests check the updated sources.

Changes: Firecracker public IP

Layer / File(s) Summary
Allocate and expose the second public IP
firecracker-dev.tf
The ENI requests a secondary private IPv4 address. Terraform associates a second EIP with it, defines an ordered list of both public IPs, and exposes the second IP when the instance is enabled.
Update DNS and SSH ingress sources
fcvm-dns-test.tf, gpu-box.tf, ohio.tf, runner-vpc.tf, scripts/test-fcvm-dns-test.py, scripts/test-ohio-runner-prep.py, scripts/test-runner-iam-boundary.py
DNS client CIDRs and SSH ingress rules include the new Firecracker address. The tests check the updated CIDRs and ingress rules.

Priority: Low

Estimated code review effort: 2 (Simple) | ~12 minutes

Change: Feature

Possibly related PRs

  • ejc3/aws#656: Creates the DNS client CIDR list that this change updates to include both Firecracker public IPs.
Merge Risk: Minimal · up to c27ca

No supported merge-blocking risk remains in the reviewed changes.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 3 files. (5 skipped: 5 … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly identifies the main change: adding a second public IPv4 address for the Firecracker development box to support a later switch-over.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 3 files. (5 skipped: 5 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches: 💡 2
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-25T12:36:55.537828Z c7a1b8c Manual request
🔒 Security Review ✅ Completed 2026-10-25T12:38:11.928463Z c7a1b8c Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c27ca7d134

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread firecracker-dev.tf

ejc3 commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

@codex security review
@coderabbitai review
@greptileai review

@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: c27ca7d134

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

ejc3 commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

@codex review

ejc3 commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

@codex security review

ejc3 commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review
@greptileai review

@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Swish!

Reviewed commit: 4a9c2e8d36

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: 4a9c2e8d36

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

ejc3 commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

@codex review

ejc3 commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

@codex security review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Can't wait for the next one!

Reviewed commit: c7a1b8cfe1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: c7a1b8cfe1

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@ejc3
ejc3 merged commit c309405 into main Oct 25, 2026
3 checks passed
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.

1 participant