@abbyachau abbyachau released this Aug 8, 2018 · 57 commits to master since this release

Assets 2

Package Manager Installation

Installers

Binaries

Change Log

Changes to the cf app Display

In late June, we sent out a survey to ask the community their opinion on changing the cf app display. Buoyed by your feedback, we decided to move forward with changing the cf app display such that it is backed by the v3 app api endpoint. story

Users on CC API 3.27.0 or higher will see the new display; primary changes include:

  • app instance information is broken down by process type. See information about using procfiles and how to manage multi processes via a procfile
  • if you are using multiple buildpacks, the new cf app display will list all the buildpacks for your app

Notes:

  • users on CC API 3.27.0 or lower will continue to see the previous cf app display
  • the start command will only appear if the api provides it
  • details no longer appears in the app display table
  • if your app is in a crashed state, information for requested_state and instances no longer appear highlighted in red text
  • if you use the v3-set-droplet command and you do not immediately restage your app, the last_uploaded time will reflect the last time your app was restaged, not when you set the droplet
  • cf v3-app has been removed as a result of this work as it is now a redundant command
  • the new cf app summary at the end of the cf push output will also appear for users on cc api 3.27 or higher (note: commands (cf-start, cf-scale, cf-restart, cf-restage) where cf app appear will change in an upcoming release)
  • plugins will continue to see the previous (non-v3) app display regardless of API version.

Invocation Timeout Configuration

App devs on cc api 3.43.0 or higher can now use v3-set-health-check to set per invocation timeouts for http and port health checks for individual health checks. story. See documentation for more details.

Upgraded to Golang 1.10.3

This release bumps the CLI to use Golang 1.10.3. See the Golang release notes for more information.

Support for SOCKS5

  • Adds SOCKS5 support for cf v3-ssh (Note: SOCKS5 is not supported for the cf ssh command). See the Using the CF CLI with a Proxy Server documentation for more information. story

Multiple Buildpacks Support

Previously, pushing with multiple buildpacks, required you to use a combination of "v2" and "v3" commands. Now, if you are using CC API 3.25 or above, you can push with multiple buildpacks by either passing in multiple -b flags, or use the new buildpacks field in the manifest.

Note:

  • If you are using cc api 3.25, you will not see multiple buildpacks when you use the cf app command - upgrade to cc api 3.27 or higher to see multiple buildpacks displayed in the new app display
  • The buildpack field has been deprecated as a result of this work.
  • In some cases, buildpacks must be specified in a particular order, see the documentation below and this link for more information
  • buildpacks reflects the app buildpack, not the buildpack used if you have used the v3-set-droplet commands

See documentation for more information.

Enhancements

  • v3-ssh process type now defaults to web story
  • Support added for setting tags for user provided service instances story
  • Now a warning appears if you attempt to use deprecated properties and variable substitution story
  • Updated usage so now you can rename the cf binary use it with every command story
  • cf events now displays the Diego cell_id and instance guid in crash events story
  • Includes cf service service-instance table display improvements wherein the service instance information is now grouped separately from the binding information story
  • cf service service-instance table display information for user provided services changed: status has been added to the table story

New Translations

New translations are included in this release. Big thanks to IBM who contributed updated translations of CLI output and help text. 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). story

Bug Fixes

  • the CLI now properly handles escaped commas in the X-Cf-Warnings header

Deprecations

  • the buildpack field in the manifest has been deprecated in favour of buildpacks.

Plugin Updates

  • Updated CF Dev plugin #235
  • Updated copy env plugin #236
  • Updated Mysql Tools plugin #237
  • Updated report users plugin #238
  • Updated maven-push plugin #239
  • Updated drains plugin #241
  • Updated create service push plugin #244

Contributors: An Yu, Sebastian Vidrio, Anande Gaitonde, Thomas Viehman, Alex Zhao, Abby Chau, Spencer Hawley, Renee Chu, Nick Guerette

Special Guests: Dies Koper (for helping us test SOCK5 support), SAPI London team (for tags support for user provided services and help updating the cf service service-instance table), Dr. Max and the IBM team (for translation updates).

@tjvman tjvman released this May 29, 2018 · 279 commits to master since this release

Assets 2

Package Manager Installation

Installers

Binaries

Change Log

Variable Substitution

Variable substitution allow app developers to create app manifests with values shared across all applicable environments in combination with references to environment-specific differences defined in separate files. Using variable substitution also enables developers to store sensitive data in a separate file that the app manifest inherits, making the credentials easier to manage and keep secure.

See documentation for more information including usage.

Enhancements

  • The api/cloudcontroller/ccv2 package has been updated with more functions #1343
  • Now a warning appears if you are using a API version older than 2.69.0, which is no longer officially supported
  • Now the CLI reads the username and password from the environment variables #1358

Bug Fixes

  • Fixes bug whereby X-Cf-Warnings were not being unescaped when displayed to user #1361
  • When using CF_TRACE=1, passwords are now sanitized #1375 and tracker

Plugin Updates

Note: The minimum version of the CC API this CF CLI release is compatible with is CC API v2.69.0. See our minimum supported version policy for more information.

Release contributors: Dies Koper and Jay Badenhope (CF CLI PMs who helped research Variable Substitution), An Yu, Sebastian Vidrio, Anande Gaitonde, Thomas Viehman, Alex Zhao, Abby Chau

@XenoPhex XenoPhex released this May 17, 2018 · 424 commits to master since this release

Assets 2

Package Manager Installation

Installers

Binaries

Change Log

Downgraded to Golang. 1.9

Due to a regression with certs in Golang 1.10, we've decided to publish a new release and downgrade our Golang version to 1.9.

This release is a tag of v6.36.1 with Golang version 1.9. When the issues have been fix in Golang, we will upgrade to 1.10.x.

Other Fixes

Note: The minimum version of the CC API this CF CLI release is compatible with is CC API v2.69.0. See our minimum supported version policy for more information.

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

@XenoPhex XenoPhex released this Apr 5, 2018 · 424 commits to master since this release

Assets 2

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

@XenoPhex XenoPhex released this Apr 3, 2018 · 435 commits to master since this release

Assets 2

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

@XenoPhex XenoPhex released this Mar 16, 2018 · 486 commits to master since this release

Assets 2

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

@nickwei84 nickwei84 released this Mar 14, 2018 · 488 commits to master since this release

Assets 2

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

@nickwei84 nickwei84 released this Mar 9, 2018 · 494 commits to master since this release

Assets 2

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

@vitreuz vitreuz released this Jan 18, 2018 · 665 commits to master since this release

Assets 2

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

@XenoPhex XenoPhex released this Jan 10, 2018 · 694 commits to master since this release

Assets 2

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))