This is a spike on a tool to repackage Cloud Native Buildpacks as Cloud Foundry Buildpacks.
- Download a CNB buildpackage (eg. a Ruby release).
- Download a lifecycle.
- Run
package.sh \ --buildpack /path/to/buildpackage.cnb \ --lifecycle /path/to/lifecycle.tgz \ --output /tmp/buildpack.zip
- Upload the created buildpack to a Cloud Foundry.
- Push your app.
- What is the contract for
config.yml
? This supportsname
andversion
, but some buildpacks include extraconfig
: - What should we do about the cache?
The current buildpacks have support for reading the VCAP_SERVICES
environment
variable, but only so that they can support integrations by third-party
vendors. Below is a survey of the buildpacks we maintain today that reference
VCAP_SERVICES
and how they use it.
- AppDynamics Profile Script
- Contrast Security Hook
- Dynatrace Hook
- NewRelic Profile Script
- Seeker Agent Hook
- Snyk Hook
The override.yml
feature allows users to override values in the buildpack
manifest. This is mostly to include their own dependencies or override the
default values. To use the feature, users will create their own buildpack that
contains an override.yml
file. This buildpack will then be included in the
build prior to the buildpack that it overrides. When the buildpack executes it
will simply copy its override.yml
into its designated dependencies directory.
Later, when the buildpack that will be overridden executes, it searches the
entire dependencies directory for any override.yml
file that may override its
manifest and then overrides its manifest to include these new settings. Once it
has overridden the manifest, it continues execution as normal.
It is not clear what the impact of not including this in our implementation
might be. The shimmed buildpacks will not have a manifest.yml
file that can
be overridden. Instead, we would need to map this to something like our
existing dependency
mapping
functionality.