CloudFoundryVcapEnvironmentPostProcessor
An EnvironmentPostProcessor that knows where to find VCAP (a.k.a. Cloud Foundry) metadata in the existing environment. It parses out the VCAP_APPLICATION and VCAP_SERVICES metadata and dumps it in a form that is easily consumed by Environment users. If the app is running in Cloud Foundry then both metadata items are JSON objects encoded in OS environment variables. VCAP_APPLICATION is a shallow hash with basic information about the application (name, instance id, instance index, etc.), and VCAP_SERVICES is a hash of lists where the keys are service labels and the values are lists of hashes of service instance metadata. Examples are:
VCAP_APPLICATION: {"instance_id":"2ce0ac627a6c8e47e936d829a3a47b5b","instance_index":0,
"version":"0138c4a6-2a73-416b-aca0-572c09f7ca53","name":"foo",
"uris":["foo.cfapps.io"], ...}
VCAP_SERVICES: {"rds-mysql-1.0":[{"name":"mysql","label":"rds-mysql-1.0","plan":"10mb",
"credentials":{"name":"d04fb13d27d964c62b267bbba1cffb9da","hostname":"mysql-service-public.clqg2e2w3ecf.us-east-1.rds.amazonaws.com",
"host":"mysql-service-public.clqg2e2w3ecf.us-east-1.rds.amazonaws.com","port":3306,"user":"urpRuqTf8Cpe6",
"username":"urpRuqTf8Cpe6","password":"pxLsGVpsC9A5S"}
}]}
Content copied to clipboard
vcap.application.*
in a fairly obvious way, and the VCAP_SERVICES object is unwrapped so that it is a hash of objects with key equal to the service instance name (e.g. "mysql" in the example above), and value equal to that instances properties, and then flattened in the same way. E.g. vcap.application.instance_id: 2ce0ac627a6c8e47e936d829a3a47b5b
vcap.application.version: 0138c4a6-2a73-416b-aca0-572c09f7ca53
vcap.application.name: foo
vcap.application.uris[0]: foo.cfapps.io
vcap.services.mysql.name: mysql
vcap.services.mysql.label: rds-mysql-1.0
vcap.services.mysql.credentials.name: d04fb13d27d964c62b267bbba1cffb9da
vcap.services.mysql.credentials.port: 3306
vcap.services.mysql.credentials.host: mysql-service-public.clqg2e2w3ecf.us-east-1.rds.amazonaws.com
vcap.services.mysql.credentials.username: urpRuqTf8Cpe6
vcap.services.mysql.credentials.password: pxLsGVpsC9A5S
...
Content copied to clipboard
Author
Dave Syer
Andy Wilkinson
Since
1.3.0
Constructors
Link copied to clipboard
Create a new CloudFoundryVcapEnvironmentPostProcessor instance.
Functions
Link copied to clipboard
open fun postProcessEnvironment(environment: ConfigurableEnvironment, application: SpringApplication)
Post-process the given
environment
.