Component: Cloud Controller

Page last updated:

The Cloud Controller provides REST API endpoints for clients to access the system. The Cloud Controller maintains a database with tables for orgs, spaces, services, user roles, and more.

Diego Auction

The Cloud Controller uses the Diego Auction to balance application processes over the cells in a Cloud Foundry installation.

Database (CC_DB)

The Cloud Controller database has been tested with Postgres and MySQL.

Blobstore

The Cloud Controller manages blobstores for the following:

  • Resources: Files that are uploaded to the Cloud Controller with a unique SHA such that they can be reused without re-uploading the file

  • App Packages: Unstaged files that represent an application

  • Droplets: Result of taking an app package, staging it by processing a buildpack, and preparing it to run

  • Buildpacks: The buildpacks available to stage apps with

  • Buildpack Cache: Cached artifacts resulting from the staging process

The blobstore uses the Fog Ruby gem in order to use services like Amazon S3, WebDAV, or the NFS filesystem for storage.

Typically, the same blobstore is used to store all five types of blobs, but the Cloud Controller may be configured to use a separate blobstore for each type.

Testing

By default rspec runs a test suite with the SQLite in-memory database. Specify a connection string using the DB_CONNECTION environment variable to test against Postgres and MySQL. For example:

    DB_CONNECTION="postgres://postgres@localhost:5432/ccng" rspec
    DB_CONNECTION="mysql2://root:password@localhost:3306/ccng" rspec

Travis currently runs two build jobs against Postgres and MySQL.

Create a pull request or raise an issue on the source for this page in GitHub