v6.24.0

@nickwei84 nickwei84 released this Feb 10, 2017 · 69 commits to master since this release

Package Manager Installation

Installers

Binaries

Change Log

Doppler endpoint only

This release no longer bundles the deprecated loggregator consumer library, which was used to talk to the loggregator endpoint on CF releases before v212. Now, regardless of the CF release version targeted, the noaa library will be used to talk to the doppler endpoint.

This endpoint was deemed stable around CF v203: if targeting an earlier CF release and experiencing issues with commands that interact with the loggregator (e.g. logs, push), please stay on a previous release of the cf CLI until your target CF is upgraded.

Targeting CF releases before v197

Due to the removal of code branches only followed when targeting very old CF releases, the following commands may show degraded functionality:

  • Commands that interact with domains are affected when targeting CC API versions <v2.0.1 (cf push, routes & domains commands) It is difficult to determine the exact CF release version and impact as the published CC V2 API docs don’t go back that far. CC API 2.0.1 was incorporated somewhere before CF v190 (released in Oct 2014).
  • The cf space-users command is affected when targeting CC API <v2.21.0 (CF release v197, released in Jan 2015) and will return an error.

Health check type 'http'

In addition to the current port and process types of health checks for your application, there is now an http health check, which periodically sends an HTTP request to a specific endpoint on our application and monitors the response code.

The push, create-app-manifest and set-health-check commands have been updated to support this new health check type.

Push the app with an app manifest, or use the set-health-check command, to specify a custom path.

Note also that the above commands now prefer the better named value 'process' to identify the process health check (the deprecated 'none' is still accepted).
See http://docs.cloudfoundry.org/devguide/deploy-apps/healthchecks.html for details.

Built with Golang 1.7.5

Golang 1.7.5 was released last month, addressing an issue that could have caused API server certificate validation to fail on Mac OS Sierra.
See this announcement for details.

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. As we iterate through the list of commands, we are also focusing on improving performance and stability.

List of improved commands in this release:

  • get-health-check
  • set-health-check
  • target

Updated commands

  • push now accepts http as well as process as health check type, both to the -u flag and in the app manifest "health-check-type" attribute. The app manifest also accepts a new "health-check-http-endpoint" attribute to customize the endpoint monitored in case of the http health check type.
  • create-app-manifest now writes out the two health check related attributes mentioned above. (#1038)
  • set-health-check now accepts http as well as process as health check type, as well as an endpoint to monitor in case of the http health check type.
  • get-health-check now displays the endpoint in case of http health check type.
  • push help text now better describes the -t option.
  • delete-org now clears the targeted org after a successful deletion.
  • target now clears the targeted org and/or space on an error. (#1061)
  • api now aligns the row headers properly in locales that use multi-byte characters.

Downloads

v6.23.1

@XenoPhex XenoPhex released this Jan 13, 2017 · 170 commits to master since this release

Package Manager Installation

Installers

Binaries

Change Log

Reminder: 6.23.x is the last release to bundle the deprecated loggregator consumer library, which is used to talk to the loggregator endpoint on CF releases before v212.

In the next minor cf CLI release (6.24.0) this library is scheduled to be removed; regardless of the CF release version targeted, the noaa library will be used to talk to the doppler endpoint.
This endpoint was deemed stable around CF v203: if targeting an earlier CF release and experiencing issues with commands that interact with the loggregator (e.g. logs, push), please stay on a 6.23.x release of the cf CLI until your target CF is upgraded.

Request Ids in error messages

Where available, error messages from 5xx responses from API endpoints now include the request id, which can be helpful for platform operators to look up details on the interaction in CF's internal logs. (#998)

License and copyright attributions

All binaries and installers now include up to date license and copyright attributions.

Fixed regressions

  • delete-org immediately followed by a command/operation that depends on the deletion to have completed could fail in cf CLI 6.23.0 because delete-org returned without polling to wait for the deletion process to complete.

Updated commands

  • push now continues with deployment even if the resource matching operation times out. (#1042)
  • run-task now prints a tip in its help page how to inspect logs for a running task. (#1034)
  • run-task now prints the (specified or generated) task name when it submits it.
  • install-plugin no longer displays a localised (J oder N) with the confirmation prompt as it only responds to the English abbreviations. (As part of the refactor of all commands, all locales will eventually display a [yN] in confirmation prompts). (#994)
  • help now clarifies it displays only the most common, app developer focussed commands. (#1009)
  • version now separates the build metadata (sha and build date) with a period (e.g. 6.23.0+3c307aa.2017-01-11) to make it easier to parse with SemVer libraries, and build the binary from source. (#992, #1036)

Downloads

v6.23.0

@XenoPhex XenoPhex released this Dec 22, 2016 · 238 commits to master since this release

Installers

Binaries

Change Log

6.23.x are the last minor release to bundle the deprecated loggregator consumer library, which is used to talk to the loggregator endpoint on CF releases before v212.

In the next minor cf CLI release (6.24.0) this library is scheduled to be removed; regardless of the CF release version targeted, the noaa library will be used to talk to the doppler endpoint.
This endpoint was deemed stable around CF v203: if targeting an earlier CF release and experiencing issues with commands that interact with the loggregator (e.g. logs, push), please stay on this release of the cf CLI until your target CF is upgraded.

One-off tasks

This release introduces commands to run, terminate and list tasks, available from CF release v247 (CC API v3.0.0) onwards.

A task is an application or script whose code is included as part of a deployed application, but runs independently in its own container.
It can be used to perform one-off jobs, such as:

  • Migrating a database
  • Sending an email
  • Running a batch job
  • Running a data processing script

Refer to the Running Tasks documentation for details.

Creating users with external identity providers

The create-user command has been enhanced to allow the creation of users mapped to users in an external identity provider, such as LDAP. (#822)

$ cf create-user j.smith@example.com --origin ldap  # LDAP user

CLI client id and secret no longer hard-coded

The client id and secret used by the cf CLI for certain UAA requests are now stored in the local config.json file, making it possible to configure custom ids and secrets, for example to use long-lived tokens for scripts in CI environments.
We're working on proper documentation. For now, refer to #919 (comment).

Built with Golang 1.7.4

Golang 1.7.4 was released this month, addressing a vulnerability that could affect cf CLI users on Darwin with trust preferences for root certificates.
See this announcement for details.

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. As we iterate through the list of commands, we are also focusing on improving performance and stability.

List of improved commands in this release:

  • api
  • create-user
  • delete-org
  • delete-orphaned-routes
  • unbind-service
  • version

Fixed regressions

  • 32 bit binaries of cf CLI 6.22.2 panic on 32 bit systems for commands that interact with loggregator (such as push) due to 64 bit-only code in the doppler library. (#991)
  • Commands that interact with loggregator (such as push) could panic if the connection with the loggegrator was interrupted (e.g. in the case of a loggregator restart) due to an issue in retry logic. (#1019)

Updated commands

  • create-security-group and update-security-group now include the new "description" field in the JSON example in their help pages. This field is accepted from CF release v238 (CC API v2.57.0) onwards.
  • push now treats values of environment variables specified in the app manifest as strings so big integers do not unintentionally get converted into (harder to read) scientific numbers. (#996)
  • push no longer panics when loggregator restarts while collecting app logs. (#1019)
  • delete-space now takes an optional org parameter to allow deletion of a space without targeting it. (#957)
  • unbind-service no longer fails with an error saying the app is not bound when unbinding a service that is bound to more than 50 apps. (#948)
  • delete-orphaned-routes now deletes all orphaned routes instead of stopping after deleting 50, and no longer exits with return code 0 when an error occurs. (https://www.pivotaltracker.com/story/show/131127157, #978)

Downloads

v6.22.2

@nickwei84 nickwei84 released this Oct 26, 2016 · 511 commits to master since this release

Installers

Binaries

Change Log

CF Trace file permissions

When CF_TRACE or cf config --trace are configured to save to a file, the file is now created to be only readable/writable by the file's owner.

Fixed regressions

  • help lost its entry for CF_DIAL_TIMEOUT in cf CLI 6.22.x. (#855)
  • update-buildpack was not parsing the value passed in to its -p option correctly in cf CLI 6.22.x. (#983)
  • push panicked rather than giving a useful error message when specifying an empty env var in the app manifest. (#958)

Updated commands

  • restart now has a better command description, clarifying all app instances being stopped first, causing downtime. (#959)
  • restage now has a better command description, explaining what a restage entails. (#959)
  • logs and push now use reconnection logic from the noaa library when the connection to the stream is dropped. (#966)
  • logs and push now use the doppler logging endpoint published by the CC API (/v2/info), as opposed to extracting it from the recently deprecated logging endpoint entry.
  • bind-route-service and unbind-route-service now have a better description for the --path option.

Downloads

v6.22.1

@XenoPhex XenoPhex released this Sep 24, 2016 · 680 commits to master since this release

Installers

Binaries

Change Log

Mac OS Sierra

The cf CLI is now built with Golang 1.7.1, adding support for Mac OS Sierra as well as showing a reduction in filesize of binaries and installers for all platforms.

Fixed regressions

  • install-plugin's -f option was not accepted as a stand-alone option in cf CLI 6.22.0. (#964)
  • bind-route-service's deprecated -f option was not accepted in cf CLI 6.22.0.

Downloads

v6.22.0

@XenoPhex XenoPhex released this Sep 23, 2016 · 692 commits to master since this release

Installers

Binaries

Change Log

Improved help pages

The cf help page now lists commands in columns and no longer lists commands that app developers rarely use, or cannot use (such as admin-only commands). This reduces the length of the output greatly, making it easier to discover commands.
The help page listing all commands and their descriptions is now available under cf help -a.
Also, the individual help pages for most commands have an added SEE ALSO section listing commands you would likely use together with the current command, or even consider instead.

Windows installation without administrator permissions

The Windows installer will now ask you whether you want to install the cf CLI for all users or only the current user. The latter does not require administrator permissions, so should make the installation process easier on restricted systems. (#935)
Note that to install the cf CLI for all users, the installer needs to be run as administrator (e.g. right-click on it and select "Run as administrator"), or else this option is disabled.

Updated translations

IBM has contributed updated translations of CLI messages again.
As the update came in mid-release and a number of message strings changed since, you may find some untranslated messages (in particular in the help pages). (#940)

Bumped loggregator library

The bundled loggregator library (used to retrieve log files) was updated to the latest version, incorporating support for HTTP proxies with basic authentication. (#949)

Built with Golang 1.7.1

The cf CLI is now built with Golang 1.7.1, showing a reduction in filesize of binaries and installers.

Fixed regressions

  • A bug fix to the push command caused the uploaded archive with application files to no longer be compressed. This is now fixed. (#898)
  • A change in DNS resolution in Golang 1.5 caused resolution of domains to fail on Linux when the primary DNS server responded that the domain was not registered, instead of querying the next DNS server. There was a work-around that stopped working in CF CLI v6.17.1 when we started to statically link the Linux binaries. This issue is now fixed due to improvements in Golang 1.7.1. (#763)

Updated commands

  • plugins now lists the plugins in stable order. (#923)
  • help now lists the plugin commands in stable order.
  • push now displays a better error message when omitting both application name and manifest filepath. (#920)
  • start no longer waits and polls for started application instances if the application has 0 instances. (#917)
  • Application startup and staging related environment variables CF_STARTUP_TIMEOUT and CF_STAGING_TIMEOUT are now described in the relevant commands' help pages (push, start, restart, restage, copy-source) instead of the main help page.
  • Standard error output from plugin commands is now propagated to the terminal. (#928)
  • The scope of keys in JSON output in CF trace that is redacted to present sensitive information to be logged is widened to cover any key that includes "password" and "token" (regardless of case). (#926)

Downloads

v6.21.1

@jeffpak jeffpak released this Aug 10, 2016 · 930 commits to master since this release

Installers

Binaries

Change Log

Digitally Signed Windows binaries

The 64 bit and 32 bit Windows binaries are now digitally signed with a Cloud Foundry Foundation certificate, hopefully reducing the chance of anti-virus software incorrectly flagging them as infected. (#913)

Configurable Dial Timeout

The cf CLI has a 5 second timeout to resolve the API endpoint domain and establish a connection to it. Users reported this was insufficient in e.g. environments with multiple DNS services and a fail-over time of 5 seconds or more. This timeout is now configurable by setting environment variable CF_DIAL_TIMEOUT. (#763, #802, #855, #897)

Fixed Regressions

  • A fix in 6.21.0 to restore unreadable text on light backgrounds on Linux terminals caused messages displayed by logs to not appear on Windows. logs now displays these messages without ansi coloring to ensure they're visible on all platforms and backgrounds. (#908)
  • curl now displays an actionable message when running it when no API endpoint has been set. (#896)

Updated Commands

  • create-buildpack and update-buildpack no longer return an error when specifying a local buildpack path. (#565)
  • create-buildpack now does a file check first before sending a request to the Cloud Controller to create the buildpack. (#899)
  • files now displays a better message when inspecting an empty file. (#869)

Downloads

v6.21.0

@nickwei84 nickwei84 released this Jul 27, 2016 · 959 commits to master since this release

Installers

Binaries

Change Log

App Manifest Support for Routes with Paths, TCP Routes

The app manifest now supports a new, more concise way to express routes. It allows mixing HTTP routes with hosts and paths, as well as TCP routes, and prepares for future route specific configurations such as mapping to app ports.
Example:

---
applications:
- name: myapp
  routes:
  - route: example.com
  - route: www.example.com/foo
  - route: tcp-example.com:1234

The app manifests that cf create-app-manifest generates use the new format, but cf push will remain accepting app manifests using the format as well.
For details refer to the documentation, which should be updated in a day or so.

Updated translations

IBM has contributed updated translations of CLI messages again.

Fixed Regressions

  • Stack "Unknown"
    cf push and cf app were displaying Unknown for the stack name. (#799)
  • Unreadable text when using light background terminal
    When introducing a color library to support ansi coloring on Windows in cf CLI 6.17.1, one color was wrongly mapped causing headers in help and other commands to be unreadable when using light background terminals. This color has been restored. (#873)
  • Closing connections
    New connections were created for each API call that were not closed properly, which could lead to a "too many open files" socket error. (#878)

Updated Commands

  • api now no longer falls back to insecure http when a URL without a URL scheme is specified and the API endpoint is not accessible on port 443.

Downloads

v6.20.0

@XenoPhex XenoPhex released this Jun 29, 2016 · 1079 commits to master since this release

Installers

Binaries

Change Log

Route Services and Routes with Paths

Route services can now be bound to routes with paths.

Binding Security Groups to All Spaces of an Org

Security groups can now be bound to all spaces of an org in one command call.

Fixed Regressions

  • Plug-in failures
    Some plug-ins failed since cf CLI 6.17.0 due to an unintended change to the response of the CliCommandWithoutTerminalOutput function (#866)
  • .* in .cfignore
    While cf CLI 6.13.0 correctly interprets pattern .* in .cfignore to mean ignore all files starting with a period, cf CLI 6.14.0 and greater ignores all files and fails to push the app (#870)
  • cf copy-source with non-existing target app produces confusing error message
    While cf CLI 6.17.1 correctly fails with a message that the target app could not be found, cf CLI 6.18.1 fails saying the target space could not be found. This is addressed, and the command's help has been improved to clarify that the target app has to exist. (#849)
  • Negative WaitGroup Counter Panic
    The cf CLI could panic when pushing an app when the noaa library the CLI uses to retrieve logs does a retry. (#850)

Updated Commands

  • bind-route-service and unbind-route-service now accept a route path
  • bind-security-group now allows the space name to be omitted, binding the security group to all spaces of the org

Downloads

v6.19.0

@chendrix chendrix released this Jun 8, 2016 · 1155 commits to master since this release

Installers

Binaries

Change Log

Space Quota for Reserved Route Ports

Space quota related commands have been enhanced to enable setting, updating or retrieving the limit on the total number of reserved ports that can be used to create routes within a space. This can be used to distribute a limited number of available ports over multiple spaces for use in TCP routes.
This feature requires the target CF release to be v236 (CC API v2.55.0) or higher.

Display Suggestions

When you mistype a command, e.g. cf craete-service, the cf CLI will try to display a suggestion of the command you may have meant.

Safe hostnames

Routes created with random hostnames could lead to embarrassing situations as words were picked from a bundled dictionary. The dictionary has been filtered, removing profanity, swear words and other questionable words.

App Start Hang

Fixed an issue where the cf CLI could hang while attempting to start an app due to an issue in the loggregator_consumer and noaa libraries.

Fixed Regressions

  • Linux 64 bit release
    Some users reported panics with the Linux 64 bit binaries since cf CLI 6.18.0. We fixed a build issue that resolves these issues. (#848, #843)
  • cf org, cf space
    A regression in cf CLI 6.18.0 caused most values for the fields displayed by cf org and cf space to not appear.
  • cf disable-service-access
    A change in cf CLI 6.18.1 to improve this command's performance caused a regression.

Updated Commands

  • create-space-quota, update-space-quota, space-quotas, space-quota, space and org now take an argument to set/update the reserved route port quota, or display it.
  • set-env now displays the app name in the restage tip (#832)
  • push no longer interweaves output when pushing multiple apps while the doppler endpoint is not accessible.
  • push no longer fails due to a rare race condition while tailing logs when starting an app (#850)

Downloads