Display Cloud Foundry environment variables in a simple webapp
Branch: master
Clone or download
Pull request Compare This branch is 26 commits ahead of svaiyapu:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs/images
vendor/cache
Gemfile
Gemfile.lock
Procfile
README.md
config.ru
env.rb
manifest.yml

README.md

Display Cloud Foundry environment variables

A simple Sinatra application. Once deployed to Cloud Foundry, it will echo the Environment and HTTP Request Headers.

This is especially useful to learn about service connection details ($VCAP_SERVICES) being passed to an application. Create them, bind them to this running application, and you'll see the nested JSON string that is set in $VCAP_SERVICES.

Deploy

The repo contains a manifest file which creates a new application called cfenv, with a random string in the URL to avoid collisions.

To deploy:

$ cf push
Using manifest file manifest.yml

Creating cfenv... OK

Creating route cfenv-dfe2f.cfapps.io... OK
Binding cfenv-dfe2f.cfapps.io to cfenv... OK
Uploading cfenv... OK
Starting cfenv... OK
-----> Downloaded app package (64K)
-----> Using Ruby version: ruby-1.9.3
-----> Installing dependencies using Bundler version 1.3.2
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
       Fetching gem metadata from https://rubygems.org/..........
       Fetching gem metadata from https://rubygems.org/..
       Installing json_pure (1.8.0)
       Installing rack (1.5.2)
       Installing rack-protection (1.5.0)
       Installing tilt (1.4.1)
       Installing sinatra (1.4.3)
       Using bundler (1.3.2)
       Your bundle is complete! It was installed into ./vendor/bundle
       Cleaning up the bundler cache.
-----> Uploading droplet (24M)
Checking cfenv...
Staging in progress...
Staging in progress...
Staging in progress...
  1/1 instances: 1 running
OK
$ open http://cfenv-dfe2f.cfapps.io

Env Var API

To view a specific environment variable, you can use the /v1/:var endpoint:

$ curl http://cfenv-dfe2f.cfapps.io/v1/CF_INSTANCE_PORTS
[{"external":60148,"internal":8080},{"external":60149,"internal":2222}]

For envrionment variables that contain JSON data, you can grab individual values out of them as well (values are re-encoded to JSON):

$ curl http://cfenv-dfe2f.cfapps.io/v1/CF_INSTANCE_PORTS/0
{"external":60148,"internal":8080}
$ curl http://cfenv-dfe2f.cfapps.io/v1/CF_INSTANCE_PORTS/0/internal
8080