Deploying Cloud Foundry on OpenStack with BOSH
June 16, 2026 ยท View on GitHub
Note about support: The Release Integration team does not maintain nor validate OpenStack deployments and OpenStack deployers must rely on the general CF community for support.
Prerequisites
You'll need to following to proceed:
- An OpenStack project
- A user able to create/delete resource in this project
- Flavors with the following names and configuration:
| Name | CPUs | RAM (MiB) | Root Disk (GiB) | Ephemeral Disk (GiB) |
|---|---|---|---|---|
| minimal | 1 | 3840 | 3 | 10 |
| small | 2 | 7680 | 3 | 14 |
| small-50GB-ephemeral-disk | 2 | 7680 | 3 | 50 |
| small-highmem | 4 | 31232 | 3 | 10 |
| small-highmem-100GB-ephemeral-disk | 4 | 31232 | 3 | 100 |
Prepare OpenStack resources for BOSH and Cloud Foundry via Terraform
BOSH
To setup an OpenStack project to install BOSH please use the following Terraform module (archived). Adapt terraform.tfvars.template to your needs.
Cloud Foundry
To setup the project to install Cloud Foundry please use the following Terraform module (archived). Adapt terraform.tfvars.template to your needs. Variable bosh_router_id is output of the previous BOSH terraform module.
Install BOSH
To install the BOSH director please follow the instructions on bosh.io.
Make sure the BOSH director is accessible through the BOSH cli, by following the instructions on bosh.io. Use this mechanism in all BOSH cli examples in this documentation.
Cloud Config
After the BOSH director has been installed, you can prepare and upload a cloud config based on the cloud-config.yml file.
Take the variables and outputs from the Terraform run of cf-deployment-tf to finalize the cloud config.
Use the following command to upload the cloud config.
bosh update-cloud-config \
-v availability_zone1="<az-1>" \
-v availability_zone2="<az-2>" \
-v availability_zone3="<az-3>" \
-v network_id1="<cf-network-id-1>" \
-v network_id2="<cf-network-id-2>" \
-v network_id3="<cf-network-id-3>" \
cf-deployment/iaas-support/openstack/cloud-config.yml
Deploy Cloud Foundry
To deploy Cloud Foundry run the following command filling in the necessary variables. system_domain is the user facing domain name of your Cloud Foundry installation.
bosh -d cf deploy cf-deployment/cf-deployment.yml \
-o cf-deployment/operations/use-compiled-releases.yml \
-o cf-deployment/operations/openstack.yml \
-v system_domain="<system-domain>"