# DevOps Requirements Phase: deployment Enforcement: informational ## OPS-001: Foxtrot-Compatible Helm Chart Every deployable service MUST include a Helm chart that honors the Foxtrot deployment contract. **Rule:** The Helm chart must: - Use the standard Foxtrot base chart as a dependency (or implement its interface) - Expose `values.yaml` with the required Foxtrot parameters (replicas, resources, env, configMap references) - Support the standard lifecycle hooks (pre-deploy validation, health check, rollback trigger) - Not define its own ingress/networking — Foxtrot manages routing **Test:** Validate Helm chart structure: check for Foxtrot base chart dependency, required values keys, no ingress resource definitions. ## OPS-002: No Infrastructure Provisioning in Service Repos Service repositories MUST NOT provision infrastructure (databases, queues, storage, networking). Infrastructure is managed through the dedicated infrastructure repos. **Rule:** No Terraform, CloudFormation, or Pulumi resource definitions in service repos. Services declare their infrastructure dependencies in a manifest; the platform provisions them. **Test:** Scan for `*.tf`, `*.template.yaml` (CFN), `Pulumi.*` files in service repos. ## OPS-003: Standard Observability Contract Every service MUST expose metrics, health, and readiness endpoints in the standard format. **Rule:** - `/health` or `/actuator/health` — returns 200 when healthy - `/ready` or `/actuator/ready` — returns 200 when ready to accept traffic - Prometheus metrics endpoint at `/metrics` or `/actuator/prometheus` - Structured JSON logging with correlation ID propagation **Test:** Check for health/ready endpoint registration in code. Verify logging config outputs JSON format. ## OPS-004: No Pinned Infrastructure Versions Service Helm charts MUST NOT pin specific infrastructure versions (database versions, queue versions, runtime versions). **Rule:** Infrastructure version management is handled by the platform team. Services declare compatibility ranges, not exact versions. No `image: postgres:14.2` in service charts. **Test:** Scan Helm values and templates for hardcoded infrastructure image tags.