2026-08-27 11:36:13 -07:00
|
|
|
# 8.10 — Phase 8 gate: every service on `ServiceAdapter` routing (GREEN)
|
2026-08-26 13:47:36 -07:00
|
|
|
|
2026-08-27 11:36:13 -07:00
|
|
|
Phase: 8 — ServiceAdapter routing rollout
|
|
|
|
|
Stage: GREEN ✅
|
|
|
|
|
Depends on: 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8
|
2026-08-26 13:47:36 -07:00
|
|
|
|
2026-08-27 11:36:13 -07:00
|
|
|
**Gate**: All 5 services (workflow, s3, sqs, iam, memory) now route via X-Service/X-Resource.
|
|
|
|
|
No hand-written path switches. Old routes deprecated. Ready for Phase 3 auth work.
|
2026-08-26 13:47:36 -07:00
|
|
|
|
2026-08-27 11:36:13 -07:00
|
|
|
- [x] 5 adapters defined in ConfigMap: workflow, s3, sqs, iam, memory
|
|
|
|
|
- [x] No CRs in cluster (decision: config over K8s API, Phase 8 used ConfigMap)
|
|
|
|
|
- [x] All services onboarded to X-Service/X-Resource dispatch
|
|
|
|
|
- [x] Schema validation integrated (8.3 DSL parser)
|
|
|
|
|
- [x] Real integration tests passing
|
|
|
|
|
- [x] `go test ./... -race`, `go vet ./...` passing
|
|
|
|
|
- [x] Old path-based routes deprecated (now 404)
|
2026-08-26 13:47:36 -07:00
|
|
|
|
2026-08-27 11:36:13 -07:00
|
|
|
## Verification (Done)
|
2026-08-26 13:47:36 -07:00
|
|
|
|
|
|
|
|
```bash
|
2026-08-27 11:36:13 -07:00
|
|
|
# ✅ 5 adapters in ConfigMap
|
|
|
|
|
kubectl get configmap api-gateway-config -n api -o yaml | grep serviceName
|
|
|
|
|
# sqs, workflow, memory, s3, iam
|
2026-08-26 13:47:36 -07:00
|
|
|
|
2026-08-27 11:36:13 -07:00
|
|
|
# ✅ Real integration tests
|
|
|
|
|
GATEWAY_URL=https://api.riotpiao.com go test -tags integration -v ./internal/serviceadapter
|
|
|
|
|
|
|
|
|
|
# ✅ Unknown service → 404
|
|
|
|
|
curl -H 'X-Service: nonexistent' https://api.riotpiao.com/
|
|
|
|
|
|
|
|
|
|
# ✅ Old path routes gone
|
2026-08-26 13:47:36 -07:00
|
|
|
curl -s -o /dev/null -w '%{http_code}\n' https://api.riotpiao.com/workflow/health
|
|
|
|
|
curl -s -o /dev/null -w '%{http_code}\n' https://api.riotpiao.com/sqs/healthz
|
|
|
|
|
curl -s -o /dev/null -w '%{http_code}\n' https://api.riotpiao.com/db/healthz
|
2026-08-27 11:36:13 -07:00
|
|
|
# All 404
|
2026-08-26 13:47:36 -07:00
|
|
|
|
2026-08-27 11:36:13 -07:00
|
|
|
# ✅ Go tests pass
|
|
|
|
|
go test ./... -race
|
|
|
|
|
go vet ./...
|
2026-08-26 13:47:36 -07:00
|
|
|
```
|
2026-08-27 11:36:13 -07:00
|
|
|
|
|
|
|
|
## Notes
|
|
|
|
|
|
|
|
|
|
- Architecture: ConfigMap config (not K8s CRs) drives adapter definitions
|
|
|
|
|
- Stakater Reloader auto-restarts pods on ConfigMap change
|
|
|
|
|
- Gateway is dumb pipe (Option B): services validate JWTs
|
|
|
|
|
- SQS special case: gateway checks Authorization header
|
|
|
|
|
- Phase 3: JWT signature validation in services
|
|
|
|
|
- Phase 9: gRPC proxying for Temporal
|