a.k.a. The World’s Smallest PaaS
[2014-06-29 this blog post has been updated to reflect installation on a 64GiB Mac Pro (not a 16GiB Mac Mini  ) with 48GiB allocated to the ESXi VM]
In this blog post, we describe deploying Cloud Foundry/Elastic Runtime to our VMware/vCenter setup (i.e. the world’s smallest IaaS) in order to create the World’s Smallest PaaS (Platform as a Service).
Previous blog posts have covered setting up the necessary environment:
Uploading and Adding Elastic Runtime
- Browse to our Ops Manager: https://opsmgr.cf.nono.com/. You may need to re-authenticate (account: pivotalcf, password is whatever we set the password to when we deployed Ops Manager in Part 2)
- Click on Import a Product (see image)
Click “Import a Product” and browse to the Elastic Runtime file we downloaded and unzipped earlier
- Browse to the directory that contains the files that we untarred from the 5.6GB file we downloaded from network.gopivotal.com in Part 2 (the directory name should be pcf-220.127.116.11_allinone)
- select the file named cf-18.104.22.168.pivotal and upload it
- When it has finished uploading, we see green band at the top of the screen confirming that we’ve “Successfully added product“.
- We see a new option in the left hand navbar: Pivotal Elastic Runtime. Hover our mouse over that option to make the blue Add button appear. Click the blue Add button.
Click “Add” to begin configuring Elastic Runtime. Note: we need to hover over “Pivotal Elastic Runtime” for the “Add” button to appear
Configuring Elastic Runtime
- Click the Pivotal Elastic Runtime tile to begin configuration
Click the “Elastic Runtime” tile to begin configuration
- We are on the HAProxy tab (as indicated by the left navbar)
- HAProxy IPs: 10.9.8.40 (the App domain, the wildcard IP address for ‘*.cf.nono.com’)
- Click Generate Self-Signed RSA Certificate 
When it asks for domains, type *.cf.nono.com; click Generate
- Check Trust Self-Signed Certificates
- click Save
Ensure the HAProxy’s IP address matches the SSL certificate’s hostname (e.g. *.cf.nono.com)
- Click the Cloud Controller tab on the left hand navbar
- System domain: cf.nono.com
- Apps domain: cf.nono.com
- Click Save
Installing Elastic Runtime
- Click the white-on-blue button Apply Changes (on the right hand side)
- We will see an anxiety-inducing:
- Cluster ‘Cluster’ has 4 CPU cores. Installation requires 36 CPU cores 
- Click Ignore errors and start the install
- We see the install screen. We click on Show verbose output because we like watching the installation messages
Our initial install may end in failure; this is often remedied by attempting the install again.
The initial install failed during the “Running errand Push Console” step. Many of these failures can be fixed by re-attempting the install.
- Click Okay
- Click the blue Apply changes button
- Click Ignore errors and start the install
This is a successful deploy:
A Successful Cloud Foundry Deploy. This installation includes not only Cloud Foundry but also the Console and the Smoke Tests.
Click Return to Installation Dashboard
As a final test of Cloud Foundry, we log into the Console, which is Cloud Foundry application that is included by default in the base Cloud Foundry installation.
- click on the Pivotal Elastic Runtime tile
- click on the Credentials tab
- browse to the UAA section; look for the Admin Credentials
The credentials to log into the Console from the web interface are stored in the UAA section of the credentials tab of the Elastic Runtime installation. Note, “admin” is the login even though it’s technically not an email address
- browse to the Console application
- Log in using the Admin Credentials. Yes, even though “admin” is not an email address, it will work when logging into the console.
- Pick an organization name; we chose CF Engineering
Note: we can’t send email invites because we never configured out outbound mail server. Configuring outbound email may require help from the IT department.
Congratulations, we have an up-and-running Cloud Foundry installation. Ready for more? Let’s push our first application to our Cloud Foundry installation by following the subsequent post, World’s Smallest IaaS, Part 4: Hello World.
1 We used a 64GiB Mac Pro because we were unable to install on the 16GiB Mac Mini. We tried to install of Elastic Runtime on the Mac Mini, but the install came to a screeching halt:
Error 100: No available resources
Task 20 error
For a more detailed error report, run: bosh task 20 --debug
Try no. 4 failed. Exited with 1.
2 For those curious about installing with a genuine SSL cert, install this Certificate PEM, this Private Key PEM. Only use this certificate and key if your System and App domains are cf.nono.com and your HA Proxy IP is 10.9.8.40. Note: be sure to check Trust Self-Signed Certificates. Really. Otherwise the install will fail.
3 CPU core over-subscription is not something we worry about. vSphere 5.5′s Virtual CPU limit is 32 Virtual CPUs per core, which means that our 4-core Mac Pro could support as many as 128 Virtual CPUs. Cloud Foundry’s Engineering Team’s servers are often over-subscribed by a factor of more than 20:1 (i.e. as many as 240 cores allocated, but only 12 physical cores available).