v6.34.0
Package Manager Installation
Installers
- Debian 64 bit / 32 bit (deb)
- Redhat 64 bit / 32 bit (rpm)
- Mac OS X 64 bit (pkg)
- Windows 64 bit / 32 bit (zip)
Binaries
Change Log
New push
implementation
In this cf CLI release, the v2-push
that was exposed in cf CLI 6.33.0 has become the default push
. It addresses a number of issues, adds improvements to performance and stability of the push process, and deprecates some app manifest features. This release will make push
easier to maintain and enhance in the future.
push
Fixes and Enhancements
push
initially compares the "current" state with the "desired" state and displays this in a diff-like format to give a quick understanding of the updates it is going to make.push
now allows environment variables with ${...} in them in a manifest file. (#682)push
now preserves relative symlinks in app files. This makes it easier to work with Node.js apps usingnpm link
, but note that it now errors when it detects a symlink pointing outside the app folder (e.g. anode_modules
folder containing external symlinks). (#903)push
has a clarified error message when the route is not in the same space as the app. (#977)- The pattern format for the
.cfignore
exclusion file had not been well defined. To address this,push
uses an external library that is compatible withgit
's rules for.gitignore
. Folders containing only a .gitignore file are now included. (#993) push
creates many fewer temporary files during the package creation and upload process. This reduced push time from 21 minutes to 4 minutes in one case. (#1006)push
breaks up the API call to check the Cloud Controller cache for existing app files in batches to reduce the chance of timeouts. (#1123)push
resolves an issue when no value is specified for services in the app manifest. (#1142)push
resolves issues with platform-specific case sensitivity and locking of file and directory names by processing app bits in memory instead of writing them to disk. (#1147 and #1223)push
no longer adds new routes when updating an app and using--random-route
. (#1177)push
resolves an issue with the generated random hostname for an app pushed with a non-ASCII app name. (#1214)push
has a new, smaller dictionary to generate random HTTP routes in order to avoid the use of questionable words. (Also resolves #1283)
Deprecations
- App manifest deprecations getting a grace period:
- For at least the next six months, when you use these features, the "old" push implementation is invoked and a deprecation message will be displayed. In this case, the fixes and enhancements of the "new" push (listed above) will not be invoked.
- See blog post regarding app manifest changes on https://www.cloudfoundry.org/blog/coming-changes-app-manifest-simplification/ for more details. Please review your app manifests to see if they use the deprecated features.
push
no longer supports "promoted" (global) attributes. You can use YAML anchors instead.push
no longer supports app manifest inheritance. One of the alternatives we're considering implementing is value substitution, similar to BOSH/Concourse.
push
no longer supports app manifest route declarations using any ofhost
,hosts
,domain
,domains
orno-hostname
attributes. You can useroute
attributes instead.
- App manifest deprecations effective immediately (no grace period):
push
no longer processes${random-word}
in the app manifest. We recently discovered this undocumented feature. If the intent was to create a random hostname, you can userandom-route: true
in the app manifest.
- Other deprecations:
push
does not accept conflicting flag combinations such ascf v2-push myapp --no-route --random-route
.
Updated commands
install-plugin
now displays a warning on its help page about plugins from untrusted authors.install-plugin
now displays the correct version of an existing plugin when installing a different version. (#946 (comment))