[codex] Wire customer VM IPv6 provisioning#347
Conversation
PR Reviewer Guide 🔍(Review updated until commit dc921d8)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to dc921d8
Previous suggestionsSuggestions up to commit dc921d8
|
|
Reviewed PR-Agent suggestions:
|
|
Persistent review updated to latest commit dc921d8 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dc921d8c1e
ℹ️ 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".
|
|
||
| - name: Run hyrule-cloud database migrations | ||
| ansible.builtin.command: | ||
| cmd: /usr/local/bin/uv run alembic upgrade head |
There was a problem hiding this comment.
Load the rendered env before running migrations
In production apply this new task runs outside systemd, so it does not inherit EnvironmentFile=/opt/hyrule-cloud/.env that the existing service ExecStartPre uses. The role only supplies HYRULE_DATABASE_URL via that rendered env, and uv run only loads env files when passed --env-file (checked uv help run), so Alembic will fail before the restart/health check whenever it reads the app DB URL. Please invoke Alembic with the rendered env file or keep relying on the systemd pre-start migration.
Useful? React with 👍 / 👎.
Summary
Wires the Hyrule customer VM IPv6 provisioning settings into production deploy configuration and documents the tactical per-VM
/64model.Depends on AS215932/hyrule-cloud#33 for the application behavior. After that PR merges, production promotion should happen through the existing
promote-appsworkflow with the merged Hyrule SHA, not by manually editing app pins.Changes
HYRULE_CUSTOMER_IPV6_SUPERNET,HYRULE_CUSTOMER_IPV6_GATEWAY, andHYRULE_CUSTOMER_IPV6_DNSto plain and Vault-rendered Hyrule env templates.uv run alembic upgrade headbefore the deterministic Hyrule service restart.rtr enX3intentionally does not serve RA/DHCPv6 for paid VMs because one/64per VM is handled through static XO networkConfig.Validation
uv run --with jinja2 --with pyyaml pytest tests/iac/test_mock_render.py tests/iac/test_vault_and_runner_contracts.pypassed: 43 tests.scripts/ci/iac-static.shpassed. Local systemd/Caddy warnings were advisory from missing target binaries/plugins on the runner.git diff --checkpassed.