Deployment: Westside Basketball
Deployment
Where the services run and how they connect. Answers: where does it live and how do I reach it?
Service inventory
| Service | Namespace | Image | Public URL | arch: ID |
|---|---|---|---|---|
| basketball-api | basketball-api | <code>harbor.../basketball-api/api</code> | <code>basketball-api.tail5b443a.ts.net</code> | <code>arch:basketball-api</code> |
| westside-app | westsidekingsandqueens | <code>harbor.../westside-app/app</code> | <code>westsidekingsandqueens.tail5b443a.ts.net</code> | <code>arch:westside-app</code> |
| Postgres | basketball-api | <code>postgres:16-alpine</code> | internal only | <code>arch:postgres</code> |
| groupme-sdk | n/a (library) | Forgejo PyPI package | <code>api.groupme.com/v3</code> (external) | <code>arch:groupme-sdk</code> |
| landing-site | playground (nginx) | static HTML via svelte-playground/dist | <code>playground.tail5b443a.ts.net/svelte/westside/</code> (prototype)<br/><code>ldraney.github.io/west-side-basketball/</code> (production) | <code>arch:landing-site</code> |
Deploy pipeline
- basketball-api: merge to main → Woodpecker CI (test + kaniko build) → Harbor tag
${CI_COMMIT_SHA}→ ArgoCD Image Updater (currently broken) or manual.argocd-sourcebump → ArgoCD auto-sync - westside-app: merge to main → Woodpecker CI (currently broken for SvelteKit) → manual
docker build + pushto Harbor → updatek8s/deployment.yamlimage tag → ArgoCD auto-sync
Secrets
pal-e-auth-secrets— JWT secret, Google OAuth client ID/secretgmail-oauth-token— credentials.json + per-tenant Gmail refresh tokenbasketball-api-secrets— Postgres password, Stripe API key, Stripe webhook secretgroupme-secrets(planned) — GROUPME_ACCESS_TOKEN. Permanent token, rotates only on password change.harbor-creds— Docker registry pull secret (per namespace)
Related
- Project: Westside Basketball
- Domain Model
- Data Flow
- Procedures:
sop-deploy-recovery— recovery procedure when deployment pipeline breaks