cf bundle #2

Supports: precise
Add to new model

Cloud Foundry

This bundle allows to deploy CloudFoundry(CF). Cloud Foundry is an open source cloud computing platform as a service (PaaS) Currently supported CF release is v153. Currently supported OS is Ubuntu Trusty.

The bundle includes components: - NATS. NATS is a lightweight publish-subscribe and distributed queueing messaging system written in Ruby. - (Go)Router. The router routes incoming traffic to the appropriate component, usually the Cloud Controller or a running application on a DEA node. - UAA. The OAuth2 server provides identity management. - Cloud Controller(CC). The Cloud Controller is responsible for managing the lifecycle of applications. - DEA. The Droplet Execution Agent manages application instances, tracks started instances, and broadcasts state messages. - Loggregator. Loggregator is the user application logging subsystem for Cloud Foundry. - Traffic Controller(Logrouter). Logrouter makes the Loggregator Servers horizontally scalable by partitioning incoming log messages and outgoing traffic. Routes incoming log messages and proxies outgoing connections to the CLI and to drains for 4rd party partners.

Soon: - HM9000 - PostgreSQL - HAProxy - Login Server - etcd

Each charm install, configure and start one or more upstart job.

Usage

To deploy you'll need at a minimum: a cloud environment (deploying to single Ubuntu Trusty host also supported), a working Juju installation, and a successful bootstrap. Please refer to the Juju Getting Started documentation before continuing.

List of packages: - juju - juju-local (Optional, needed to deploy inside Ubuntu host) - juju-deployer (Optional, used to deploy all CF components at once) - libvirt-bin, qemu-kvm - squid-deb-proxy (Optional. When properly configured increases speed of deployment to single host) - CF CLI (Optional)

Deployment to single Ubuntu Trusty host

Deployment requires at least 6GB of RAM on host.

apt-get install juju juju-local juju-deployer qemu-kvm
juju bootstrap --constraints "mem=4G arch=amd64"
juju deployer -Wvdc bundle.yaml local

Deployment to a single AWS node

juju bootstrap --constraints "mem=4G arch=amd64"
juju deployer -Wvdc bundle.yaml single-aws-node
juju status router/0
# get the _IP_ of the public address
cf login -a api.<ip address>.xip.io
# login with default credentials: admin/admin
cf create-space my-space
cf target -o my-org -s my-space

Testing

The bundle uses xip.io wildcard DNS service. Use the router IP address as API endpoint. E.g. api.192.168.22.14.xip.io CF v153 uses YETI for integration tests. To test checkout to 4be0a9f1008e8fe7f0f6ef0d5be31019294af149.

To push a test application:

git clone https://github.com/cloudfoundry-samples/fib-cpu.git
cd fib-cpu
cf push
cf app
# test fib app in a browser

Known Limitations and Issues

VirtualBox doesn't support nested virtualization so it is impossible to deploy the bundle inside a VirtualBox machine. Juju doesn't destroy KVM machine on 'juju destroy-environment local' so you need to do it manually.

Contact Information

cf-charmers cf-charmers@lists.launchpad.net

Bundle configuration

Embed this bundle

Add this card to your website by copying the code below. Learn more.

Preview