Skip to content

buildpacks - by name + git url fallback #1358

Open
@drnic

Description

@drnic

What's the user value of this feature request?

manifest.yml can list a set of buildpacks; but each buildpack can only be listed by either its git url, or its zip URL, or a name if its installed by a platform operator.

This makes it very hard for sample or shared applications, such as https://github.com/starkandwayne/wordpress-for-cloudfoundry, that must provide multiple manifests because they don't know if a target CF will have pre-installed buildpacks or not.

Instead, I propose that we change the schema of buildpacks to something like routes - where each item is an object, rather than a simple string; and to allow use to provide all the information about a buildpack:

applications:
- name: wp
  buildpacks:
  - name: pancake_buildpack
    source: https://github.com/starkandwayne/pancake-buildpack
  - name: wpcli_buildpack
    source: https://github.com/starkandwayne/wpcli-buildpack
  - name: php_buildpack  

Who is the functionality for?

Users of Cloud Foundry

How often will this functionality be used by the user?

Whenever deploying shared applications written by authors who do not know the status of your cf buildpacks list.

Who else is affected by the change?

An implementation could continue to support the existing buildpacks: [pancake_buildpack, php_buildpack] schema.

Is your feature request related to a problem? Please describe.

I don't like that I have to curate multiple manifests and document it in projects like https://github.com/starkandwayne/wordpress-for-cloudfoundry/

I'd prefer that users can get a pre-installed buildpack if it exists; or fallback to a git url if its missing.

Describe the solution you'd like

Support both the existing buildpacks: [name1, name2] and new buildpacks: [{name: name1, source: uri1}, {name: name2}].

Also continue to support name or git url in cf push -b name1 -b url2.

Describe alternatives you've considered

See https://github.com/starkandwayne/wordpress-for-cloudfoundry/ - I must curate multiple manifest.yml for end users and hope they understand the reason for each and when to switch.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions