Deploying Failure Flags on Pivotal Cloud Foundry (PCF)
Supported platforms:
Failure Flags lets you run Gremlin experiments on applications running on Pivotal Cloud Foundry (PCF). This includes adding latency to network calls, generating exceptions, and triggering custom behaviors.
Adding Failure-Flags-Sidecar to your Deployment manifest
Failure Flags runs on Cloud Foundry using a sidecar. However, unlike the regular Failure Flags sidecar, PCF sidecars run in the same container as your application. To accomplish this, you must download and extract the Failure Flags sidecar to your project folder. This section will walk you through this process.
Configuring the Failure Flags sidecar
Failure Flags on PCF uses the common options listed in Configuring Failure Flags. We recommend creating a new file (e.g. vars.yaml) containing your configuration details.
Example vars.yaml file:
Configuring your deployment manifest
First, download and extract the archive from one of these links, depending on your architecture: arm64 or x86_64. These links will download the latest version of the archive. If you want to download a specific version, replace latest with a release version (e.g., for version 2.0.0, use https://assets.gremlin.com/packages/failure-flags-sidecar/v2.0.0/arm64/failure-flags-sidecar-linux.tar.gz). You can find a list of releases in our release notes, or in our VERSIONS file.
Next, add the Gremlin sidecar to your deployment manifest. This example shows how to bundle Gremlin with a Python Flask application, including necessary environment variables. You can adjust the memory and disk space available to the sidecar.
Finally, push your application to Cloud Foundry:
Troubleshooting
Unable to interpolate credhub refs
The following error indicates that the staging steps failed to connect to a dependency (e.g. CredHub):
[STG/0] [ERR] Unable to interpolate credhub refs: Unable to interpolate credhub references: Post "https://credhub:8844/api/v1/interpolate": proxyconnect tcp: dial tcp 127.0.0.1:5034: connect: connection refusedIf this happens, configure the HTTP_PROXY/HTTPS_PROXY environment variables for the runtime container (not globally), as follows:
- Create a file called
.profilein the root directory of your application containing the following lines:-
export HTTP_PROXY="http://localhost:5034" export HTTPS_PROXY="http://localhost:5034"
-
- Remove
HTTP_PROXY/HTTPS_PROXYas global variables from theenvblock in the manifest file:

