Files
sentryagent-idp/openspec/specs/deployment/spec.md
SentryAgent.ai Developer d42c653eea chore(openspec): archive engineering-docs and phase-2-production-ready changes
- engineering-docs → archive/2026-03-29-engineering-docs (63/63 tasks complete)
- phase-2-production-ready → archive/2026-03-29-phase-2-production-ready (89/89 tasks complete)
- openspec/specs/ synced with all Phase 1 + Phase 2 + engineering-docs capabilities (22 specs total)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 12:41:53 +00:00

1.6 KiB

Spec: Multi-Region Deployment (Terraform)

Status: Pending CEO approval Workstream: 8 of 8

Scope

  • terraform/ directory at project root
  • Shared agentidp module (compute, networking, secrets)
  • environments/aws/ — ECS Fargate + RDS PostgreSQL + ElastiCache Redis
  • environments/gcp/ — Cloud Run + Cloud SQL + Memorystore Redis
  • Deployment guide: docs/devops/deployment.md

Module structure

terraform/
  modules/
    agentidp/
      main.tf       — compute (ECS task or Cloud Run service)
      networking.tf — VPC, subnets, security groups
      variables.tf  — all configurable inputs
      outputs.tf    — service URL, DB endpoint, Redis endpoint
    rds/            — managed PostgreSQL
    redis/          — managed Redis
    lb/             — ALB (AWS) or Cloud LB (GCP), TLS cert
  environments/
    aws/
      main.tf       — calls modules, sets AWS-specific vars
      variables.tf
      terraform.tfvars.example
    gcp/
      main.tf
      variables.tf
      terraform.tfvars.example

Acceptance Criteria

  • terraform validate passes for both aws and gcp environments
  • terraform plan produces no errors against a live AWS/GCP account (test in dev env)
  • JWT_PRIVATE_KEY and JWT_PUBLIC_KEY injected as environment secrets (not hardcoded)
  • TLS termination at load balancer — HTTPS only in production modules
  • PostgreSQL and Redis not publicly accessible — VPC-internal only
  • docs/devops/deployment.md — end-to-end deployment walkthrough for AWS and GCP
  • terraform.tfvars.example provided for both environments — no secrets in version control