⚠️
Production runbook — commands execute against live clusters. Verify all values before running.
Polaris CDN Migration
Select a cluster to pre-fill values, edit any field, then click Generate. All commands populate and are ready to copy.
Select Cluster
Required — select a cluster
New Custom Cluster
Generated values (editable after adding)
POLARIS_URL
CDN_DOMAIN
S3_BUCKET
R2_BUCKET
LOCATION_HINT
Please enter a cluster name.
Cluster Configuration — pre-filled on cluster select, all fields editable
Polaris
Cloudflare
AWS S3
Kubernetes
The URL signing secret for this deployment (used in step 1.5 and 2.2):
Update dev/cloudflare/r2-worker/wrangler.toml — edit the [env.prod] block with the values below, then deploy.
wrangler.toml — [env.prod] changes:
Set wrangler secret and deploy:
- Polaris pod is Running and Ready (kubectl get pods -n <namespace>)
- GET /api/v1/site/cloudflareR2 returns
enabled: true and correct bucket name
- GET /api/v1/site/cloudflareR2/cdn returns correct CDN domain and
enabled: true
- Upload a test app/profile via Polaris UI — verify asset URL uses the CDN domain (not S3)
- Download the asset via signed CDN URL — confirm HTTP 200
- R2 bucket object count is incrementing (CF dashboard → R2 → polaris-cdn-r2)
- Wrangler tail shows 200 responses:
wrangler tail --env prod
- No errors in Polaris logs relating to R2/Cloudflare storage
- Sippy status shows active:
wrangler r2 bucket sippy get <r2-bucket>
Click each item to check it off. State is not persisted.