74ddce364f
Validate Flux manifests / kustomize-build (pull_request) Failing after 25s
Create docs/pre-launch-checklist.md with all sections required before public launch: Infrastructure, DNS & TLS (all 7 subdomains including grafana.leeworks.dev), Functional Verification, Legal & Monetisation, and Post-Launch steps. Also link the checklist from README.md. Closes leeworks-agents/api-company#112
3.8 KiB
3.8 KiB
Pre-Launch Checklist
Use this checklist as the final go-live gate — run through every item the day before flipping the public switch. All items must be ✅ before announcing public availability.
Infrastructure
- All Flux components
READY=True(flux get all) - All three API pods Running and READY
zip-enrichmentpodREADY=1/1(kubectl get pods -n zip-enrichment)holidayspodREADY=1/1(kubectl get pods -n holidays)air-qualitypodREADY=1/1(kubectl get pods -n air-quality)
docs-sitepod Running and READY (kubectl get pods -n docs-site)- Prometheus scraping all three API services (check Prometheus Targets UI)
- Grafana dashboard accessible at
grafana.leeworks.dev
DNS & TLS
zip.leeworks.dev→ cluster ingress IP (dig zip.leeworks.dev +short+curl -I https://zip.leeworks.dev)holidays.leeworks.dev→ cluster ingress IPaqi.leeworks.dev→ cluster ingress IPdocs.leeworks.dev→ cluster ingress IPstatus.leeworks.dev→ cluster ingress IPregistry.leeworks.dev→ cluster ingress IPgrafana.leeworks.dev→ cluster ingress IP- TLS certificates issued for all 7 subdomains (
kubectl get certificates -A)
Functional Verification
GET /healthreturns HTTP 200 on zip-enrichment (curl https://zip.leeworks.dev/health)GET /healthreturns HTTP 200 on holidays (curl https://holidays.leeworks.dev/health)GET /healthreturns HTTP 200 on air-quality (curl https://aqi.leeworks.dev/health)GET /zip/{zip}returns correct data for a sample ZIP code (e.g.curl https://zip.leeworks.dev/zip/10001)GET /holidays/{year}returns correct data (e.g.curl https://holidays.leeworks.dev/holidays/2026)GET /aqi/{city}returns correct data (e.g.curl https://aqi.leeworks.dev/aqi/New%20York)- Request without
X-RapidAPI-Proxy-Secretreturns HTTP 403 on all three APIs docs.leeworks.dev/pricingloads correctlystatus.leeworks.devshows all three APIs as UP
Legal & Monetisation
docs/legal/terms-of-service.mdcommitted and reachable atdocs.leeworks.dev/legal/terms-of-servicedocs/legal/privacy-policy.mdcommitted and reachable atdocs.leeworks.dev/legal/privacy-policydocs/legal/acceptable-use-policy.mdcommitted and reachable atdocs.leeworks.dev/legal/acceptable-use-policy- All three APIs listed on RapidAPI with Free + 3 paid tiers (leeworks-agents/api-company#44)
- PayPal linked to RapidAPI (leeworks-agents/api-company#19)
rapidapi-proxy-secretupdated with real RapidAPI values in all 3 namespaces (leeworks-agents/api-company#81)
Post-Launch
- Alert channel confirmed — Slack webhook active (leeworks-agents/api-company#73)
- Grafana alert rules firing correctly on synthetic test downtime
- First STATUS.md post-launch update committed
Quick Commands Reference
# Flux overview
flux get all
# Check API pod health
for ns in zip-enrichment holidays air-quality docs-site; do
echo "=== $ns ==="
kubectl get pods -n $ns
done
# Verify TLS certs
kubectl get certificates -A
# Check all 7 DNS subdomains
for sub in zip holidays aqi docs status registry grafana; do
echo "$sub.leeworks.dev -> $(dig $sub.leeworks.dev +short)"
done
# Smoke test health endpoints
for svc in "zip.leeworks.dev/health" "holidays.leeworks.dev/health" "aqi.leeworks.dev/health"; do
echo "$svc: $(curl -s -o /dev/null -w '%{http_code}' https://$svc)"
done
# Verify 403 on missing proxy secret
curl -s -o /dev/null -w "%{http_code}" https://zip.leeworks.dev/zip/10001
# Expected: 403
References: ROADMAP.md §Phase 6; leeworks-agents/api-company#33, #44, #19, #81, #73, #7, #8, #18