Skip to content

Releases: cloudfoundry/cli

v6.36.1

05 Apr 18:37
Compare
Choose a tag to compare

Package Manager Installation

Installers

Binaries

Change Log

Bug Fix for bind-service

Fix for bind-service, whereby when a user attempts to bind a service to an app, an error message would be thrown stating --name requires a specific CF API version. This patch release fixes the issue. #1359

Clarified the error message when you try to push an app to a space that already has that app name and route in a different space.

Release contributors: An Yu, Sebastian Vidrio, Anande Gaitonde, Thomas Viehman, Abby Chau

v6.36.0

03 Apr 21:30
Compare
Choose a tag to compare

Package Manager Installation

Installers

Binaries

Change Log

Droplet Upload

Now you can push an app without staging it. The push command now has an optional --droplet flag that allows you to specify a path to a tgz file with a pre-staged app. This allows you to have more granular control over which droplet is being used. For example, you can put the exact version of the app from staging on production and get the results you expect.

Name Service Bindings

We've updated the bind-service command by adding an optional --binding-name flag that allows you to assign a name to that binding. This feature provides app developers control and context on the app-service binding when they may not have control over other related names, such as the app or service instance. Thanks to the CAPI team for providing this feature through PR #1309. We've also updated the service command so you can view binding names, if any, for a specific service.

Upgraded cf CLI to Golang 1.10.1

The cf CLI now uses Go version 1.10.1. We expect this update will resolve recent SSL issues.

Use DisableKeepAlives when closing Network connections

The cf CLI previously used just the Connection: close header when making certain API calls to the Cloud Controller and UAA. Now, DisableKeepAlives is set to true on the client side, to aid with closing connections with these requests. This should alleviate some networking issues with certain load balancers.

Bug Fixes

  • int64 support for cf/flags library, #1333
  • Debian package, #1336
  • Web action flag not working on CLI 0.6.5, #1337
  • When a cf push upload fails/Consul is down, a panic occurs, #1340 and #1351

Note: Colors in the terminal will auto-detect a TTY session - which is the default color if Color_Enabled is not set in the config or $CF_COLOR is empty.

Plugin Updates

  • Create Service Push v1.0.1 release, #214
  • Add Copy-Autoscaler 0.0.1, #216
  • Update CF Local to v0.19.0, #218
  • Update the Java plugin to version 2.0.0, #219

Release contributors: An Yu, Sebastian Vidrio, Anande Gaitonde, Thomas Viehman, Jay Badenhope, Abby Chau

v6.35.2

16 Mar 22:52
Compare
Choose a tag to compare

Package Manager Installation

Installers

Binaries

Change Log

Bug Fix

  • Providing a clearer services authorization warning message when a service has been disabled for the organization, fixing #1344

v6.35.1

14 Mar 23:23
Compare
Choose a tag to compare

Package Manager Installation

Installers

Binaries

Change Log

Fixed regressions

  • Corrected issue so service, services, and share-service commands no longer fail with a JSON unmarshal error for certain service broker configurations

Other fixes

  • Changed all warnings, including experimental warnings for v3 commands, so they now output to STDERR to make debugging easier

v6.35.0

09 Mar 19:26
Compare
Choose a tag to compare

Package Manager Installation

Installers

Binaries

Change Log

Dropping support for older Cloud Controller API versions

In order to focus our resources on the most valuable features and bug fixes, the CF CLI team periodically announces the end of support for older Cloud Controller (CC) API versions. The current CF CLI is backwards compatible to CF 251 / CC API Release 1.15 / APIs 2.69.0 and 3.4.0, from January 2017.

Service Instance Sharing

This cf CLI release includes two new commands, share-service and unshare-service, to enable you to share service instances between spaces in the same or different orgs. Additional details here. We welcome your feedback on the new implementation.

To help you track where a service instance is shared to or from, we refactored and updated the service command.

Service Account Authentication (Client Credentials)

It is now possible to authenticate with only a client ID and a secret using the auth command with a new --client-credentials flag. Before this release, users could only log in as a user (i.e. username & password with either default client id, or custom client id & secret). That meant "fake" users needed to be prepared for CI environments and scripts ("tiles" self-registration).

push Fixes and Enhancements

  • v2-push no longer accepted (previous release merged v2-push into push)
  • Makes explicit that the default route is defined as the route initially used to create the app, if no routes exists. Previously, when you push an existing app by providing a hostname, a second route would be created. Now given an app with a single route, if you attempt to provide a hostname on a subsequent push, the hostname will be ignored. #1321

Other Fixes and Enhancements

  • Fixed problem where wildcards weren't allowed in routes section of app manifest, deployment #399

Plugin Updates

Going forward, we ask that every plugin name matches its command name so it can be installed and uninstalled with the same name.

  • Updated Event Alerts Plugin to 0.0.1, #198, then removed that plugin, #211
  • Updated top Plugin to 0.9.3, #210
  • Updated service-use to 1.2.2 with matching command and plugin names #213

Built with Golang 1.10

Golang 1.10 was released last month. It addresses security vulnerabilities and other bugs.
See the Golang release summaries for details on the bug fixes.

Refactored commands

  • services to enable an upcoming feature
  • service (see above)
  • logout to enable clearing of client credentials for Service Account Authentication (see above); will now also show user name during logout for consistency with other commands

Release contributors: An Yu, Nick Wei, Sebastian Vidrio, Anande Gaitonde, Jay Badenhope, and special guest Kevin Middleton

v6.34.1

18 Jan 00:05
Compare
Choose a tag to compare

Package Manager Installation

Installers

Binaries

Change Log

Fixed regressions

  • Refactored push resulted in incorrectly use of .cfignore (#1300)
  • CF Push strips double dashes on route name in version 6.34.0 (#1307)

Updated command

  • For push --random-route, replaced "sugar-glider" with "panda" and "tasmanian-devil" with "toucan" in list of nouns

v6.34.0

10 Jan 01:47
Compare
Choose a tag to compare

Package Manager Installation

Installers

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 using npm link, but note that it now errors when it detects a symlink pointing outside the app folder (e.g. a node_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 with git'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 app manifest route declarations using any of host, hosts, domain, domains or no-hostname attributes. You can use route 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 use random-route: true in the app manifest.
  • Other deprecations:
    • push does not accept conflicting flag combinations such as cf 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))

v6.33.1

15 Dec 03:03
Compare
Choose a tag to compare

Package Manager Installation

Installers

Binaries

Change Log

Relative symbolic links in apps

The v2-push command now preserves relative symlinks in app files. This makes it easier to work with Node.js apps using npm link. (#903)

Fixed regressions

  • Refactored service displayed more than just the guid when using the --guid flag, breaking scripts that read the value. (#1271)
  • Refactored logs stopped ordering streamed logs. We believe this issue was introduced during the refactor in cf CLI 6.26.0. (#1273)

Refactored commands

We are in the process of creating a more consistent user experience. Our goal is to standardize UI output.
For example, warnings and errors will consistently be outputted to stderr instead of stdout, and English table and key-value headers will be displayed in lowercase.
As we iterate through the list of commands, we are also focusing on improving performance and stability.
Please review your scripts if they depend on the output of these commands.

List of improved commands in this release:

  • create-route (was mistakenly listed in release notes of cf CLI 6.32.0)
  • feature-flags

Updated commands

  • logs now works over a SOCKS5 proxy. (cloudfoundry/noaa#38)
  • feature-flags now retries the API request on a 502 error response. (#1230)
  • feature-flags and restart-app-instance now have shorter, cleared command descriptions.
  • v3-set-env now accepts values for environment variables that start with a dash. (#1277)
  • v2-push now searches for a manifest file when a folder is specified to the -f flag, and fails with a friendly error message when it cannot find one.
  • v2-push now allows specifying a path to the -p flag starting with \ on Windows, to indicate the root of the current drive.

v6.33.0

20 Nov 23:51
Compare
Choose a tag to compare

Package Manager Installation

Installers

Binaries

Change Log

Refactored push

This cf CLI release exposes a refactored version of the push command, which includes a number of improvements to performance and stability of the push process, and make it easier to maintain and enhance in the future.

The new implementation of the command is initially introduced alongside the "old" push command to give cf CLI users an opportunity to try it out and report back any issues: Although we believe v2-push to have feature-parity, our codebase had been lacking sufficient integration tests around this command to be sure nothing was missed.

We plan to replace "old" push with this implementation in a subsequent release soon.

Notes

  1. v2-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
  2. v2-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.
  3. v2-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)
  4. The pattern format for the .cfignore exclusion file had not been well defined. To address this, v2-push uses an external library that is compatible with git's rules for .gitignore.
    (#1006)
  5. v2-push does not implement "promoted" (global) attributes and app manifest inheritance.
    When you push with an app manifest using these features, the "old" push implementation is invoked and a message will be displayed that explains it is doing so. Same for app manifest route declarations using any of "host", "hosts", "domain", "domains" or "no-hostname" attributes.
  6. v2-push does not accept conflicting flag combinations such as cf v2-push myapp --no-route --random-route.

We welcome your feedback on the new implementation.

V3 app commands

This cf CLI release exposes app related features offered by the CC V3 APIs that were marked GA on 4 Aug 2017. This release adds:

  • v3-ssh
  • v3-push now supports the --no-start flag to suppress staging and starting of the app
  • -p flag to v3-create-package to specify a path to an app directory or zip file
  • .cfignore support to v3-push and v3-create-package
  • an experimental warning to all "v3" commands at the start of execution (it was displayed for only a few of them)

SOCKS5 proxy support

The cf CLI now uses your SOCKS5 proxy when specified in the https_proxy environment variable.
In fact, this works since cf CLI release 6.31.0, as it relies on support added in Golang 1.9. (#1047)

$ https_proxy=socks5://localhost:1080 cf login

Documentation added here.

Note that it does not work for the ssh and logs commands for now as they use TCP connection APIs that do not read this environment variable.

Built with Golang 1.9.2

Golang 1.9.1 and 1.9.2 were released last month. They address security vulnerabilities and other bugs.
See the Golang release summaries for details on the bug fixes.

Refactored commands

We are in the process of creating a more consistent user experience; our goal is to standardize UI output.
For example, warnings and errors will consistently be outputted to stderr instead of stdout and English table and key-value headers displayed in lowercase.
As we iterate through the list of commands, we are also focusing on improving performance and stability.
Please review your scripts if they depend on the output of these commands.

List of improved commands in this release:

  • bind-service (was mistakenly listed in previous release's notes)
  • service

Plugin development

Windows plugin binaries can be signed with the author's digital certificate to assure recipients that they do indeed come from you.

Although an optional step, unsigned binaries can often not be used in locked-down machines common in organizations with stricter security policies. Signing the binary allows system admins to whitelist the plugin by signature or publisher.

Documentation has been improved on how to about signing your plugin binary. See here.

Updated commands

  • create-user now returns a friendlier error message when run with insufficient permissions. (#1238)
  • delete-user now no longer includes a confusing suggestion to use cf curl to delete a user that has multiple UAA origins. (#1097)
  • set-org-role, set-space-role, unset-org-role and unset-space-role now fail with an error when the specified user has multiple UAA origins and the set_roles_by_username resp. unset_roles_by_username feature flags are disabled (same message as for delete-user above)
  • push has removed some questionable words from the dictionaries it uses to generate random HTTP routes (#1261)

v6.32.0

27 Sep 00:35
Compare
Choose a tag to compare

Package Manager Installation

Installers

Binaries

Change Log

V3 app commands

This cf CLI release exposes app related features offered by the CC V3 APIs that were marked GA on 4 Aug 2017.
Features include the deployment and management of apps with multiple processes (defined in a Procfile), staging apps with multiple buildpacks, and uploading and staging multiple versions of a single app to enable a near-zero downtime app update experience.
Refer to the full list of commands here and details on how to configure multiple buildpacks here.

The new features are introduced using new commands starting with a "v3-" suffix.

  • Some commands are mostly equivalent to existing app related commands but call the V3 APIs or expose new flags to unlock additional features.
  • Other commands are new and expose the primitives of apps, such as operations on an app's packages and droplets.

We welcome your feedback on the new features, the user experience and the new workflows you may adopt.
Based on that, we will look at making commonly used v3 commands the default in a future release, with a migration plan for users targeting CF endpoints that do not support the GA'ed V3 APIs yet.

Please treat the "v3" commands as experimental - no guarantees are made about their availability or compatibility in subsequent cf CLI releases.

New commands

diesk@cloud-cf:~/workspace$ ./cf v3-<tab><tab>
v3-app                   v3-get-health-check      v3-set-env
v3-apps                  v3-packages              v3-set-health-check
v3-create-app            v3-push                  v3-stage
v3-create-package        v3-restart               v3-start
v3-delete                v3-restart-app-instance  v3-stop
v3-droplets              v3-scale                 v3-unset-env
v3-env                   v3-set-droplet

Notes on new commands

Take into consideration:

  • v3-push for now supports only a subset of features of "old" push. In particular, it does not support app manifests yet, nor any flags to set the stack or modify the default mapped route, nor applies exclusions from a .cfignore file.
    After pushing an app with this command, please use map-route, bind-service, v3-set-env, v3-scale, v3-set-health-check, etc. to update its configuration.
  • For some app related commands (ssh, bind-service, etc.) there is no "v3" version yet.
    Please use the "old" command for now.
  • Although "v3" and "old" commands can be used together, some combinations may give unexpected results.
    For example, if "v3" commands are used to create an app with a package but it is not staged, or v3-push is used to push an app that fails to stage, it is not returned by the "old" apps command.

SSL_CERT_FILE/SSL_CERT_PATH for self-signed API server certificate

Because Golang 1.9 added support for the environment variables SSL_CERT_FILE and SSL_CERT_PATH on Unix systems, it is now possible to use these when targeting a CF API endpoint that uses a self-signed certficate.
This is particularly useful in a CI environment without root access, where the existing method of registering the certificate in the local truststore is not possible. (#1084)

Note that this is supported since the previous cf CLI release (6.31.0).

Refactored commands

We are in the process of creating a more consistent user experience; our goal is to standardize UI output.
For example, warnings and errors will consistently be outputted to stderr instead of stdout and English table and key-value headers displayed in lowercase.
As we iterate through the list of commands, we are also focusing on improving performance and stability.
Please review your scripts if they depend on the output of these commands.

List of improved commands in this release:

  • create-route
  • orgs
  • spaces

Updated commands

  • spaces now displays an error when the authentication tokens have expired. (#1051)
  • spaces now displays an error when receiving an unexpected response from the API endpoint. (#1136)