b8ba748db7
Validate Flux manifests / kustomize-build (pull_request) Failing after 16s
Closes leeworks-agents/api-company#133 Closes leeworks-agents/api-company#134 Closes leeworks-agents/api-company#135 Closes leeworks-agents/api-company#136 - flux/image-automation/imagerepositories.yaml: add vin-decoder ImageRepository pointing at registry.leeworks.dev/vin-decoder/api (#133) - flux/image-automation/imagepolicies.yaml: add vin-decoder ImagePolicy with semver range >=0.1.0 (#133) - flux/monitoring/gatus-helmrelease.yaml: add VIN Decoder API endpoint check targeting https://vin.leeworks.dev/v1/health with Slack alert (#134) - docs/pre-launch-checklist.md: add vin-decoder to Infrastructure, DNS & TLS, Functional Verification, and Legal sections; update status page line to reference all four APIs (#135) - docs/secrets-checklist.md: add items #11-13 for vin-decoder GITEA_TOKEN, gitea-registry, and rapidapi-proxy-secret; add detail sections for each (#136) kustomize build flux/ passes with zero errors.
4.5 KiB
4.5 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)vin-decoderpodREADY=1/1(kubectl get pods -n vin-decoder)
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 IPvin.leeworks.dev→ cluster ingress IP (dig vin.leeworks.dev +short+curl -I https://vin.leeworks.dev)grafana.leeworks.dev→ cluster ingress IP- TLS certificates issued for all 8 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)GET /v1/healthreturns HTTP 200 on vin-decoder (curl https://vin.leeworks.dev/v1/health)GET /v1/decode?vin=1HGCM82633A004352returns correct make/model/year data- Request without
X-RapidAPI-Proxy-Secretreturns HTTP 403 on vin-decoder (curl https://vin.leeworks.dev/v1/decode?vin=1HGCM82633A004352) - Request without
X-RapidAPI-Proxy-Secretreturns HTTP 403 on all three APIs docs.leeworks.dev/pricingloads correctlystatus.leeworks.devshows all four 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)
- VIN Decoder listed on RapidAPI with Free + 3 paid tiers (leeworks-agents/api-company#131)
rapidapi-proxy-secretupdated with real RapidAPI value invin-decodernamespace (leeworks-agents/api-company#128)- 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