Summary
Stemcell downloads from https://storage.googleapis.com/bosh-aws-light-stemcells/...
(and equivalent GCS buckets for other IaaS) generate significant GCP egress costs (~2K $ per month).
We can drastically reduce these costs by fronting the GCS buckets with Cloudflare CDN under a community-owned domain such as stemcells.cloudfoundry.org.
Related migration: cloudfoundry/community#926
Motivation
- Stemcells are immutable, versioned, large artifacts — ideal CDN cache candidates.
- Current GCS egress is billed at ~$0.12/GB; Cloudflare egress to end users is free.
- A single cached version is fetched from origin once, then served from edge globally.
- Improves download speed and reliability for the community.
Proposed Architecture
User → https://stemcells.cloudfoundry.org/<iaas>/<version>/<file>.tgz
│
└── Cloudflare CDN (cached at edge)
│ (cache miss only)
└── storage.googleapis.com/bosh-<iaas>-light-stemcells/...
Example URL mapping:
- Before:
https://storage.googleapis.com/bosh-aws-light-stemcells/1.425/light-bosh-stemcell-1.425-aws-xen-hvm-ubuntu-noble.tgz
- After:
https://stemcells.cloudfoundry.org/aws/1.425/light-bosh-stemcell-1.425-aws-xen-hvm-ubuntu-noble.tgz
Action Items
Phase 1 — Infrastructure setup
Phase 2 — Cloudflare configuration
Phase 3 — Release automation integration
Phase 4 — Monitoring & rollout
Phase 5 — Optional follow-up
Success Criteria
Summary
Stemcell downloads from
https://storage.googleapis.com/bosh-aws-light-stemcells/...(and equivalent GCS buckets for other IaaS) generate significant GCP egress costs (~2K $ per month).
We can drastically reduce these costs by fronting the GCS buckets with Cloudflare CDN under a community-owned domain such as
stemcells.cloudfoundry.org.Related migration: cloudfoundry/community#926
Motivation
Proposed Architecture
Example URL mapping:
https://storage.googleapis.com/bosh-aws-light-stemcells/1.425/light-bosh-stemcell-1.425-aws-xen-hvm-ubuntu-noble.tgzhttps://stemcells.cloudfoundry.org/aws/1.425/light-bosh-stemcell-1.425-aws-xen-hvm-ubuntu-noble.tgzAction Items
Phase 1 — Infrastructure setup
stemcells.cloudfoundry.orgbosh-aws-light-stemcells,bosh-gce-light-stemcells,bosh-azure-light-stemcells, etc.) haveallUsers:objectViewerPhase 2 — Cloudflare configuration
stemcells.cloudfoundry.org → storage.googleapis.com(proxied)Hostheader tostorage.googleapis.com/<iaas>/<path>→/bosh-<iaas>-light-stemcells/<path>Phase 3 — Release automation integration
curl -Iwarm-up request after upload to pre-fill Cloudflare cachestemcells.cloudfoundry.org/...) in release metadata /bosh.ioindexbosh.ioUI/API to point downloads at CDN URLPhase 4 — Monitoring & rollout
#boshPhase 5 — Optional follow-up
Success Criteria