Skip to content

feat: capacity guard pre-flight + clean public repo of internal references#44

Merged
syscod3 merged 6 commits intomainfrom
feat/capacity-guard
Mar 26, 2026
Merged

feat: capacity guard pre-flight + clean public repo of internal references#44
syscod3 merged 6 commits intomainfrom
feat/capacity-guard

Conversation

@syscod3
Copy link
Copy Markdown
Collaborator

@syscod3 syscod3 commented Mar 26, 2026

Summary

  • Free tier capacity guard: pre-flight check in CI that queries live OCI API before tofu plan to prevent accidentally exceeding Always Free limits (A1 OCPU, RAM, Micro count)
  • FREE_TIER_RESOURCES.md: new clean public reference doc — fixes inaccuracies (E2.1.Micro available on PAYG, block storage 200 GB total not per-AD, NLB is fully Always Free), removes all tenancy-specific sections
  • Internal references scrubbed: profile names, endpoints, node names, and region moved to CI secrets (OCI_REGION, OMNI_ENDPOINT) or generic placeholders throughout all public files
  • History rewritten: previous versions of FREE_TIER_RESOURCES.md removed from all commits via git filter-repo

New CI secret required

Add OCI_REGION and OMNI_ENDPOINT to repository secrets before merging — the deploy workflow now reads these instead of hardcoding them.

Test plan

  • Add OCI_REGION and OMNI_ENDPOINT to repo secrets
  • Trigger deploy workflow and confirm plan step passes with the new -var flags
  • Confirm capacity guard step runs and outputs correct live vs requested counts

🤖 Generated with Claude Code

syscod3 added 4 commits March 26, 2026 22:45
Query live OCI state before planning to catch:
- Config errors: tfvars requests more than the per-tenancy limit
- Drift: live instances already exceed limit from out-of-band provisioning

Checks A1 OCPU, A1 RAM, and E2.1.Micro count independently.
…ternal context

- E2.1.Micro is available in both Always Free and PAYG accounts (was wrong)
- Block storage limit is 200 GB total per tenancy, not per AD (was wrong)
- NLB is fully Always Free — not pay-per-GB (was wrong)
- Remove fractional OCPU claim (was an empirical fluke, not a product difference)
- Remove all tenancy-specific sections and deployment state
- Remove internal cross-references
- terraform.tfvars: strip omni_endpoint and oci_config_profile; rename
  node names to generic node-{1..4}; document all sensitive vars as
  TF_VAR_ env vars
- terraform.tfvars.example: replace internal profile/endpoint with
  generic placeholders (DEFAULT, omni.example.com)
- deploy.yml: OCI config profile → DEFAULT; region from OCI_REGION
  secret; omni_endpoint from OMNI_ENDPOINT secret; oci_config_profile
  passed as -var flag
- validation.tf, variables.tf: replace internal domain in examples
- mise.toml, cleanup script, docs: replace internal profile with DEFAULT
@syscod3 syscod3 force-pushed the feat/capacity-guard branch from d94faac to 79690c1 Compare March 26, 2026 22:46
@syscod3 syscod3 merged commit 13da31e into main Mar 26, 2026
5 checks passed
@syscod3 syscod3 deleted the feat/capacity-guard branch March 26, 2026 22:51
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