Prompt for manifest values
Manifests should support a prompt syntax similar to the random-word syntax to prompt users for input. This would make "shrink wrapped" applications that run on Cloud Foundry easier to configure.
As an example, an application I'm working on requires a set of environment variables to work. At the moment, my instructions specify that a user has to run seven commands to properly set them. Now that I'm aware of the the manifest style, I could replace that with a note that the user has to edit the manifest.yml file to add/update with the user's specific values. However, both of these solutions require the user to have actually read the documentation, something that most people won't do. Instead, it might be nice to be able to say something like:
---
applications:
- name: gopivotal-cla
memory: 1G
instances: 1
host: gopivotal-cla
domain: cfapps.io
path: target/github-cla-integration-1-SNAPSHOT.war
env:
ADMIN_EMAIL_DOMAINS: ${prompt: A comma delimited list of email address domains used to identify administrative users}
DATABASE_URL: ${prompt: The URL for the application's database}
ENCRYPTION_KEY: ${prompt: The key used to encrypt data in the database}
GITHUB_CLIENT_ID: ${prompt: The Client ID assigned to your registered application}
GITHUB_CLIENT_SECRET: ${prompt: The Client Secret assigned to your registered application}
services:
gopivotal-cla-elephantsql:
label: elephantsql
provider: elephantsql
version: n/a
plan: turtle
gopivotal-cla-newrelic:
label: newrelic
provider: newrelic
version: n/a
plan: standard
buildpack: https://github.com/cloudfoundry/java-buildpack
While I suspect this isn't a feature that most applications will use (it probably makes sense to just code most values directly into the manifest and check them into source control), I do think it addresses requirements for people who want to create pre-packed applications that "just run" on Cloud Foundry without a whole lot of user knowledge.