chore: retire Platform AWS bootstrap in favor of infrastructure #490

Manually merged
anton merged 1 commit from chore/remove-legacy-aws-bootstrap into main 2026-10-20 22:33:32 +00:00
Owner

Merge order

Merge only after infrastructure PR #5. Its dedicated-account bootstrap becomes the supported AWS provisioning and host-install path. This is a source-ownership cleanup, not an existing-resource/state migration.

Summary

  • Remove the retired infra-bootstrap/ Terraform, tools image, wrappers and documentation, plus make setup-builder.
  • Keep Platform's make setup, make up / up-components, setup/migration scripts, systemd units, and application/BYOC provisioning unchanged: the infrastructure installer still consumes these.
  • Retain all six existing local setup/migration regression tests as test_platform_setup.py / make test-setup, still included in make test. Remove tests/stubs that exclusively checked the deleted provisioner and its tracked bytecode cache; keep the ten runtime managed-DNS contract tests.
  • Make the opt-in builder E2E preflight check the four exported BUILDER_* inputs instead of reading local Terraform state. The live test body is unchanged.
  • Point provisioning and alternate-source IAM documentation to the infrastructure repository. Do not imply that the retired components_source_bucket_name input exists in the replacement.
  • Keep the retired directory ignored at repository root so residual local state, plans and credential exports cannot accidentally be committed after its local .gitignore is removed.
  • No Terraform apply/destroy, AWS operations, service restarts, deployment/config changes, resource adoption or state migration are performed by this PR. Existing .env values and runtime configuration keys/defaults are unchanged.
  • Preserve existing state and configuration; do not run Terraform in the retired directory or use the new-account bootstrap to adopt an existing deployment. Any adoption needs a separately reviewed state migration.
  • Platform PR #232 adds DB-backup resources under the directory removed here. Its infrastructure changes need to be reconciled with the infrastructure repository; this cleanup neither implements nor closes that work.
  • The managed-bucket component IAM differences are corrected and tested in infrastructure commit 05a8cf75caa5 on PR #5: platform/builder component listing, read-only builder access, and conditional platform publication to the original restricted namespaces. Offline verification and independent review passed; no test files are included in the infrastructure correction. Merge infrastructure #5 before marking this cleanup ready; no live IAM was changed or applied.
  • Alternate component-source IAM remains a separately reviewed infrastructure prerequisite, not something make up provisions. Existing-state adoption also needs provider compatibility review: the old root requires AWS provider v6, while the replacement pins v5.

Verification

Passed on both original main (old setup target) and the candidate (new setup target):

make test-setup test-e2e-contracts test-cli-install test-prepare-components

Candidate results: 89 Python tests passed, plus the CLI installer shell checks. Also passed:

  • Five temporary local acceptance checks: old source/entrypoint removal; residual artifacts remain ignored; setup/up/runtime source and environment defaults unchanged; original six test methods preserved; real Make/Bash builder preflight rejects each missing input and accepts all four without cloud access.
  • git diff --check HEAD, changed Python AST parsing, shell syntax checks, and added-lines credential scan.
  • Independent scope and code reviews: no blocking code findings; merge sequencing, state/provider compatibility, component IAM parity, and the overlapping backup PR are explicitly retained as prerequisites or follow-ups above.

No full Rust suite or live AWS builder E2E/deployment was run for this source-only cleanup; Rust/application/runtime sources are unchanged. Temporary acceptance tooling is not added to the repository.

## Merge order **Merge only after [infrastructure PR #5](https://git.caution.co/public/infrastructure/pulls/5).** Its dedicated-account bootstrap becomes the supported AWS provisioning and host-install path. This is a source-ownership cleanup, not an existing-resource/state migration. ## Summary - Remove the retired `infra-bootstrap/` Terraform, tools image, wrappers and documentation, plus `make setup-builder`. - Keep Platform's `make setup`, `make up` / `up-components`, setup/migration scripts, systemd units, and application/BYOC provisioning unchanged: the infrastructure installer still consumes these. - Retain all six existing local setup/migration regression tests as `test_platform_setup.py` / `make test-setup`, still included in `make test`. Remove tests/stubs that exclusively checked the deleted provisioner and its tracked bytecode cache; keep the ten runtime managed-DNS contract tests. - Make the opt-in builder E2E preflight check the four exported `BUILDER_*` inputs instead of reading local Terraform state. The live test body is unchanged. - Point provisioning and alternate-source IAM documentation to the infrastructure repository. Do not imply that the retired `components_source_bucket_name` input exists in the replacement. - Keep the retired directory ignored at repository root so residual local state, plans and credential exports cannot accidentally be committed after its local `.gitignore` is removed. ## Existing deployments and related work - No Terraform apply/destroy, AWS operations, service restarts, deployment/config changes, resource adoption or state migration are performed by this PR. Existing `.env` values and runtime configuration keys/defaults are unchanged. - Preserve existing state and configuration; do not run Terraform in the retired directory or use the new-account bootstrap to adopt an existing deployment. Any adoption needs a separately reviewed state migration. - [Platform PR #232](https://git.caution.co/public/platform/pulls/232) adds DB-backup resources under the directory removed here. Its infrastructure changes need to be reconciled with the infrastructure repository; this cleanup neither implements nor closes that work. - The managed-bucket component IAM differences are corrected and tested in [infrastructure commit `05a8cf75caa5`](https://git.caution.co/public/infrastructure/commit/05a8cf75caa510e9f1093c0ed4a4bfed13120571) on PR #5: platform/builder component listing, read-only builder access, and conditional platform publication to the original restricted namespaces. Offline verification and independent review passed; no test files are included in the infrastructure correction. Merge infrastructure #5 before marking this cleanup ready; no live IAM was changed or applied. - Alternate component-source IAM remains a separately reviewed infrastructure prerequisite, not something `make up` provisions. Existing-state adoption also needs provider compatibility review: the old root requires AWS provider v6, while the replacement pins v5. ## Verification Passed on both original main (old setup target) and the candidate (new setup target): ```sh make test-setup test-e2e-contracts test-cli-install test-prepare-components ``` Candidate results: **89 Python tests passed**, plus the CLI installer shell checks. Also passed: - Five temporary local acceptance checks: old source/entrypoint removal; residual artifacts remain ignored; setup/up/runtime source and environment defaults unchanged; original six test methods preserved; real Make/Bash builder preflight rejects each missing input and accepts all four without cloud access. - `git diff --check HEAD`, changed Python AST parsing, shell syntax checks, and added-lines credential scan. - Independent scope and code reviews: no blocking code findings; merge sequencing, state/provider compatibility, component IAM parity, and the overlapping backup PR are explicitly retained as prerequisites or follow-ups above. No full Rust suite or live AWS builder E2E/deployment was run for this source-only cleanup; Rust/application/runtime sources are unchanged. Temporary acceptance tooling is not added to the repository.
anton force-pushed chore/remove-legacy-aws-bootstrap from 1d9a3cdd0e to e8e211fd4c 2026-10-20 22:12:43 +00:00 Compare
anton changed title from WIP: chore: retire Platform AWS bootstrap in favor of infrastructure to chore: retire Platform AWS bootstrap in favor of infrastructure 2026-10-20 22:12:56 +00:00
anton manually merged commit e8e211fd4c into main 2026-10-20 22:33:32 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
public/platform!490
No description provided.