Cloud Foundry Release
Shell HTML Ruby Batchfile
njbennett and staylor14 [#154853187] CF-R, signing off
Signed-off-by: Steve Taylor <>
Latest commit c516e01 Feb 13, 2018
Failed to load latest commit information.
.final_builds Final release 287 Feb 1, 2018
config Bump to uaa-release v55 and UAA 4.10.0 Feb 8, 2018
docs update docs/ Jan 26, 2016
example_manifests Remove minimal AWS Aug 4, 2017
githooks/pre-commit Rename the githook that runs the tests pre-commit [Finishes #131675629] Oct 5, 2016
jobs Revert "Revert "Revert "Merge remote-tracking branch 'remotes/origin/… Sep 26, 2017
packages Add go1.9 package for use in routing release [#151767177] Oct 9, 2017
releases Final release 287 Feb 1, 2018
runtime-configs Remove duplicate logs in drains Nov 13, 2017
scripts [#152615863] Check for bundle executable instead of bundler Nov 7, 2017
spec Revert "Revert "Set directories_to_backup bosh link to nil"" Dec 28, 2017
src Bump to uaa-release v55 and UAA 4.10.0 Feb 8, 2018
templates Revert "Revert "Set directories_to_backup bosh link to nil"" Dec 28, 2017
.gitattributes fix .gitattributes May 8, 2012
.gitignore Add etcd-certs/ to .gitignore Mar 21, 2017
.gitmodules Update loggregator submodule URL Oct 17, 2017
.rspec Run specs colorfully Dec 24, 2014 Revert "Revert "Merge upstream changes"" Jan 25, 2016
Gemfile New test suite for manifest generation Sep 6, 2014
Gemfile.lock Bump bosh_cli to 1.3232.0 Apr 30, 2016
LICENSE Change p484 to p545 May 9, 2014
NOTICE Update NOTICE [finishes #131885985] Oct 13, 2016 [#154853187] CF-R, signing off Feb 13, 2018 Adding TC<->CC mTLS cert specifics to documentation Jul 27, 2017


v287 is the final version of cf-release

To deploy Cloud Foundry, use cf-deployment

To transition a cf-release-based deployment to cf-deployment, use the tools in cf-deployment-transition

The Release Integration team is standing by to take your calls in the #cf-deployment channel on the Cloud Foundry slack

Welcome to Cloud Foundry

Cloud Foundry is an open platform as a service (PaaS) that provides a choice of clouds, developer frameworks, and application services. Cloud Foundry makes it faster and easier to build, test, deploy, and scale applications.

This repository contains the Cloud Foundry source code. Cloud Foundry is deployed as a BOSH release. See the BOSH documentation for more information on BOSH.

NB: Due to the symlinks present in cf-release, the v2 bosh CLI will fail to perform create-release against this repo. You'll need to use the Ruby CLI for that, but you should be able to run upload-release and deploy using the new CLI.

Table of Contents

  1. About Branches
  2. Repository Contents
  3. Running Cloud Foundry
  4. Useful Scripts
  5. Ask Questions
  6. File a Bug
  7. Understanding Changes
  8. Contributions

About Branches

The develop branch is where we do active development. Although we endeavor to keep the develop branch stable, we do not guarantee that any given commit will deploy cleanly.

The release-candidate branch has passed all of our unit, integration, smoke, & acceptance tests, but has not been used in a final release yet. This branch should be fairly stable.

The master branch points to the most recent stable final release.

At semi-regular intervals a final release is created from the release-candidate branch. This final release is tagged and pushed to the master branch.

Pushing to any branch other than develop will create problems for the CI pipeline, which relies on fast forward merges. To recover from this condition follow the instructions here.

Repository Contents

This repository is structured for use with BOSH; an open source tool for release engineering, deployment and lifecycle management of large scale distributed services. There are several directories of note:

  • jobs: start and stop commands for each of the jobs (processes) running on Cloud Foundry nodes.
  • packages: packaging instructions used by BOSH to build each of the dependencies.
  • src: the source code for the components in Cloud Foundry. Note that each of the components is a submodule with a pointer to a specific SHA.
  • releases: yml files containing the references to blobs for each package in a given release; these are solved within .final_builds
  • .final_builds: references into the public blobstore for final jobs & packages (each referenced by one or more releases)
  • config: URLs and access credentials to the bosh blobstore for storing final releases
  • git: Local git hooks

Running Cloud Foundry

Cloud Foundry can be run locally or in the cloud. The best way to run Cloud Foundry is to deploy it using BOSH. For more information about using BOSH, the bosh-release repository has links to documentation, mailing lists, and IRC channels.

To run BOSH and Cloud Foundry locally, use BOSH-Lite. BOSH-Lite provisions a Vagrant VM running the BOSH director as well as Garden-Linux for creating Linux containers that simulate VMs in a real IaaS.

To run BOSH and Cloud Foundry in the cloud, there are several supported IaaS providers, primarily AWS, vSphere, and OpenStack.

Full instructions on infrastructure setup, building Cloud Foundry, and deploying Cloud Foundry with BOSH are available on our documentation site.

Useful Scripts

  • scripts/update pulls cf-release and updates all submodules (recursively) to the correct commit. This is useful in the following situations:
    • After you've first cloned the repo
    • Before you make changes to the directory. (Running the script avoids having to rebase your changes on top of submodule updates.)
  • scripts/setup-git-hooks will ensure basic unit tests run before committing.
  • scripts/commit_with_shortlog commits changes you've made to updated git submodules.

Ask Questions

Questions about the Cloud Foundry Open Source Project can be directed to our Mailing Lists:

There are lists for Cloud Foundry Developers, BOSH Users, and BOSH Developers.

File a Bug

Bugs can be filed using GitHub Issues in the respective repository of each Cloud Foundry component.

Understanding Changes

You can generate an HTML document which will show all commits between any two given SHAs, branches, tags, or other references, and then view it in your favourite browser:

$ bundle && bundle exec git_release_notes html --from=v210 --to=v212 > /tmp/changes.html && open /tmp/changes.html


Please read the contributors' guide