Releases: cloudfoundry/cli
v8.1.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
Docker
docker pull cloudfoundry/cli:8.1.0
Change Log
-
Detect CF-on-K8s in
cf api
This makes
cf api
able to detect thecf-on-k8s
flag in the root
endpoint response and persist this information in the config. This will
allow us to enable CF-on-K8s-specific behaviour for every following
command.
We have introduced a newselfcontained
integration suite which
contains tests that do not need to be run against a cf deployment.
Issue: cloudfoundry/cf-k8s-api#10 -
Unpin protobuf
client-go v0.22 does not work with protobuf v1.3.4.
protobuf v1.5 leads to a runtime panic in go-loggregator and
go-log-cache. See:cloudfoundry/go-log-cache#30
pin go-log-cache to a fork containing this PR that fixes the above
problem: cloudfoundry/go-log-cache#31
Having done all this allows us to use the latest version of the client-go
package, which is needed for the cf-on-k8s support. -
Implement
cf login
for CF-on-K8sThis implements a CF-on-K8s-compatible version of the
cf login
command. When a user runscf login
against a CF-on-K8s, they will be
prompted to choose anauth-info
from the ones specified in their
$KUBECONFIG
. Passing any extra option, except for-a
, will result in
a failure.
The main changes here are the extraction of theAuthActor
and
UserConfig
interfaces, which we implement both for the default use
case and the Kubernetes one. This allow us to provide specific
implementations of methods likeAuthenticate
,GetLoginPrompts
and
CurrentUser*
.
While the choice of theAuthActor
implementation can happen in the
NewActor
constructor, this can't be done forUserConfig
.cf login
hits the root endpoint and mutates theConfig
accordingly, and the
selection of theUserConfig
implementation depends on those mutations.
We have then decided to perform this choice dynamically via the
DynamicUserConfig
decorator. -
Use the latest cloudfoundry/go-log-cache
This removes the rewrite to eirini-forks/go-log-cache and bumps
cloudfoundry/go-log-cache to the latestmaster
commit which includes
the protobuf fix. -
Introduce a
ConnectionWrapper
for KubernetesThis introduces a new implementation a new
ConnectionWrapper
implementation to be used when targeting a CF-on-K8s API. The wrapper
leverages the Kubernetes configuration directly. Onlyauth-provider
credentials are supported at the moment.
Issue: https://github.com/cloudfoundry/cf-k8s-api/issues/16 -
Refactor the creation of the wrapped CC client
API and Login commands do not require auth, so skip the auth wrapping
explicitly by calling a wrapper that doesn't add it.
Other commands do require auth, so call the auth wrapping command.
Remove the nil checks in the auth wrappers, as they will now only be
involved when auth is actually required.
Issue: https://github.com/cloudfoundry/cf-k8s-api/issues/16 -
Support Kubernetes inline client certificates
This only supports inline client certificates and keys for now. -
Support Kubernetes client certificates of any kind
This change leverages the
client-go
rest.TLSConfigFor
method to
build atls.Config
regardless of the authentication method. This
allows us to support any authentication method that uses client
certificates (inline certs, filepath certs, exec plugins) with the same
code. -
Test Kubernetes exec plugins
This only adds tests as the behaviour comes for free from the previous
commit. -
Support inline and filepath Kubernetes tokens
Support the case where a token is provided directly in the auth-info
withtoken
or usingtoken-file
.
The logic here is that there won't any certificates in the TLSConfig,
and the WrapTransport method of transportConfig will be nil, as it is
only set in the exec and auth-provider plugins. Therefore we'll just
wrap the http request with whatever auth info is left, which is
'hard-coded' tokens in this case. -
Clear the Kubernetes auth information in
cf api
Issue: cloudfoundry/korifi#183 -
Clear the Kubernetes auth information in
cf api --unset
Issue: cloudfoundry/korifi#182 -
Clear the Kubernetes auth information in
cf logout
Issue: cloudfoundry/korifi#157 -
Use the real Kubernetes username when creating a space role
Previously, CurrentUserName implementation was split in the config
area for standard CF and CF-on-k8s. It would have been great to update
the k8s version to call /whoami, but the cloud controller logic doesn't
seem to belong in the config area.
So instead, GetCurrentUser() has been added to the actor interface, and
also to the AuthActor interface. This has a standard CF and a k8s CF
implementation. The standard implementation just defers to the config
method, whereas the k8s implementation invokes the new /whoami endpoint
on the cloud controller.
This commit also introduces handling that endpoint.
Issue: cloudfoundry/korifi#147 -
Use the real Kubernetes username everywhere
Special thanks to our many contributors to this release, including but not limited to:
Giuseppe Capizzi, Danail Branekov, Georgi Sabev, Kieron Browne, Mario Nitchevi, Cristhian Camilo Peña, George Gelashvili, Héctor José Calderón, Hema Ranganathan, Juan Diego Gonzalez, Ryker Reed, Shwetha Gururaj, Alexander Berezovsky
Full Changelog: v8.0.0...v8.1.0
Note:
This CF CLI release is tested with minimum version CAPI release 1.109.0 and 1.124.0-rc.9
See our minimum supported version policy for more information.
v7.4.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
Docker
docker pull cloudfoundry/cli:7.4.0
Compatibility
Tested against CAPI 1.120.0* (87e34a3e) and CAPI 1.95.0* (4624a515)
Change Log
- Fixes #2220 - cf routes fails with 414 Request-URI Too Large
v8.0.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
Docker
docker pull cloudfoundry/cli:8.0.0
Change Log
Release Notes
Services commands upgraded to call the v3 API
In v8 the cf CLI has been switched to using v3 CAPI to make service relates requests, most commands now have a new flag called --wait since v3 services code create async jobs, if you want to still synchronously wait you can use the new flag to wait for the operation to complete.
cf services
New flag --no-apps (Do not retrieve bound apps information)
New flag - --wait
cf marketplace
New Flag --show-unavailable (Show plans that are not available for use)
cf service
New Flag --params (Retrieve and display the given service instances's parameters. All other output is suppressed.)
Update - displays information about guid, type and broker tags
Update - service field is renamed to offering
Update - service broker
field is renamed to broker
Update - dashboard field is renamed to dashboard url
Update - The ordering and wording of each block of information have changed slightly
cf create-service
New flag --wait (Wait for the operation to complete)
param SERVICE
is now called SERVICE_OFFERING
cf update-service
New flag --wait (Wait for the operation to complete)
Removed Flag --upgrade
cf upgrade-service
Removed Flag --force
cf delete-service
New flag --wait (Wait for the operation to complete)
cf bind-service
New Flag --wait (Wait for the operation to complete)
cf unbind-service
New Flag --wait (Wait for the operation to complete)
cf service-key
Update - Displays information about last operation and message as new columns.
cf create-service-key
New Flag --wait (Wait for the operation to complete); operation is asynchronous by default
cf delete-service-key
New Flag --wait (Wait for the operation to complete); operation is asynchronous by default
cf bind-route-service
New Flag --wait (Wait for the operation to complete); bind-route-service is asynchronous by default
cf unbind-route-service
New Flag --wait (Wait for the operation to complete)
Operation is asynchronous by default
cf routes
Update added service instance column to output
Golang Bump to 1.16 from 1.13
This golang bump introduces a requirement for a SAN (Subject Alternative Name) in certificates used CF. Read more about this change here
Manifest Diffs
When applying a manifest in v8, for example during a push, you will not see manifest output provided through the new v3 space manifest diff endpoint. There are several known issues in this endpoint depending on what version of CAPI you use, see CAPI release notes for more info.
Support HTTP/2 When Mapping Routes
cf map-route
Users can specify destination protocol when mapping routes using the --destination-protocol
flag #2192
See the official Cloud Foundry documentation for more information on HTTP/2 routing for applications.
View Route Details
cf route
New command for viewing details about a route and its destinations #2205
Other
Removed v6/v2 dead code in several directory paths (command/v6 as an example)
Special thanks to our many contributors to the v8 release, including but not limited to:
Sarah Weinstein, Marc Paquette, Ryker Reed, Juan Diego Gonzalez, Dominic Roberts, Hema Ranganathan, Alexander Berezovsky, Jenna Goldstrich, Reid Mitchell, Mona Mohebbi, Teal Stannard, Seth Boyles, George Blue, Felisia Martini, Weyman Fung, Marcela Campo, Winna Bridgewater, Piyali Banerjee, Carson Long, and Klaas van Schelven
v7.3.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
Golang Bump to 1.16 from 1.13
This golang bump introduces a requirement for a SAN (Subject Alternative Name) in certificates used CF. Read more about this change here
Changes
Change CLI strategy for streaming logs from log cache, delaying when messages aren't found by 250 MS to decrease excessive load on log cache -> #2177
Add --wait to run-task -> 8671a5b
Two spaces indent for json ->e951a00
Add support for quotas to be given in TBs -> b9e606e
Support TLS 1.3 -> #2191
Bug Fixes
Stack being overriden on cf push #2148
V7 services do not poll empty jobs -> 7fb7b89
Cancel deployment v7 push on failure -> #2170
dfe195d -> Special characters are not HTML encoded
Contributors
Reid Mitchell, Jenna Goldstrich, Alexander Berezovsky, Dominic Roberts, Juan Diego Gonzalez, Hema Ranganathan, Teal Stannard, Seth Boyles, Zach Robinson, Felisia Martini, George Blue, Sarah Weinstein, Colin Simmons and Ryker Reed
v7.2.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
Bugs
- Logout is idempotent story
- CF Scale works on stopped apps issue
- CLI doesn't fail listing large numbers of apps issue
- CLI doesn't fail on login in certain Windows environments issue
cf network-policies
can query in spaces with many apps issue- CLI fails informatively when Cloud Controller fails without an error issue
Features
- Add
cf revisions
story- this initial iteration of the rollback command is experimental. Additional changes should be expected in the near-term v7 releases.
- Improved
cf revisions
help text story - Improve
cf revisions
: annotate which revision is deployed story - Improve
cf revisions
: tell user if app is stopped story - Improvements to
cf rollback
Contributors
Nick Webb, Lisa Burns, James Palmer, Alex Berezovsky, Josh Collins, Jenna Goldstrich, Steve Taylor,
Sebatian Vidrio, Sarah Weinstein, Harsha Nandiwada, George Blue, Derik Evangelista, Teal Stannard
Note: The minimum version of the CC API this CF CLI release is compatible with is CC API v3.85.0.
See our minimum supported version policy for more information.
v6.53.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
Corresponding BOSH Release
Change Log
Bugs
- Fix regression released in v6.52.0 whereby
cf logout
would exit non-zero when run without an api being targeted - issue
Contributors
Lisa Burns, James Palmer, Nick Webb, Jenna Goldstrich, Alexander Berezovsky, Steve Taylor, Josh Collins
Note: The minimum version of the CC API this CF CLI release is compatible with is CC API v2.128.0.
See our minimum supported version policy for more information.
v7.1.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
Compatibility
Tested against CC API Release Candidate capi-1.99.0-rc.33.
Change Log
FEATURE
cf rollback
- user can rollback to a previous app revision story- this initial iteration of the rollback command is experimental. Additional changes should be expected in the near-term v7 releases.
IMPORTANT NOTE: rollbacks are executed using the zero downtimerolling
deployment strategy which means both versions of the app will be running in parallel during the rollback.
- this initial iteration of the rollback command is experimental. Additional changes should be expected in the near-term v7 releases.
Enhancements
deployable
boolean added tocf revisions
outputrevisions
now shows an extra warning when revisions for that app are disabled - storyrevisions
now has several different header titles on the output table, and now revisions are shown in descending order - story- Add buildpack details in tabular format to
cf app
output issue # 1971- Add buildpack details in tabular format to
cf push
output
- Add buildpack details in tabular format to
- Improve misleading error message when un-sharing service-instances issue #1936
- Add logic to revoke auth and refresh tokens on CLI logout when revocable flag for UAA is present
- Improved
cf push
error messaging on manifest type errors issue #1983
Known Issues
- a regression of
cf logout
when no API is targeted, causing it to exit with a non-zero exit code was introduced in cf CLI v7.0.2. This causescf logout
to not be idempotent. The fix can be tracked here.
Contributors:
CLI Team:
James Palmer, Nick Webb, Jenna Goldstrich, Alexander Berezovsky, Steve Taylor, Josh Collins, Lisa Burns, Sebastian Vidrio
VAT Team:
Teal Stannard, Merric de Launey, Sarah Weinstein, Mona Mohebbi, Renee Chu, Chris Selzo, Reid Mitchell, Harsha Nandiwada, Greg Cobb
SAPI Team:
Aditya Tripathi, Brian Butz, Derik Evangelista, Emina Cosic, Marcela Campo, Urse Searle, Winna Bridgewater, Felisia Martini, George Blue
Other OSS Contributors:
Olivier Lechevalier, Xinhu Liu, Oliver Rand
Note: The minimum version of the CC API this CF CLI release is compatible with is CC API v3.85.0. See our minimum supported version policy for more information.
v6.52.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
FEATURE
- Legacy plugins use Log Cache - story
NOTE: We bumped the config as part of the implementation. CLI users that had targeted and logged into their foundations prior to updating to this CLI version may be required to to re-login & target in order to initialize the updated config.
Enhancements
- Invalidate UAA auth and refresh tokens on logout
- Add logic to revoke tokens on CLI logout when revocable flag for UAA is present
- Improved redaction in UAA verbose logging
- If UAA provides standard prompts (Email, Password) then the CLI can translate
them into the user's locale; else will display the prompt provided by UAA platform
operator.- Thanks @frodenas for PR'ing the sample translation for Spanish
- Provide localized prompt if sso is misconfigured - story
Bugs
- Lowercase hostname in
map-route
- story - Correct an issue with the update-service command where command was removing the tags on service when no tags were provided.
Contributors:
James Palmer, Nick Webb, Jenna Goldstrich, Alexander Berezovsky, Steve Taylor, Josh Collins, Andrew Crump, Olivier Lechevalier, Xinhu Liu, Lisa Burns, Sebastian Vidrio
Note: The minimum version of the CC API this CF CLI release is compatible with is CC API v2.100.0 (3.35).
- See our minimum supported version policy for more information.
v7.0.2
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
Bug Fixes
- Double encode name parameters in requests to CAPI #1938
- Fixes known issue from previous release
v7.0.1
-- regression in the login behavior where failures occur on certain cf-deployments which use alternative login paths other than UAA #1964 - Allow empty space characters in app names #1966
Deletions
Remove leftover, experimental v3-zdt- commands
These commands were meant to be removed, since they have been replaced by the following commands
v3-zdt-restart
->restart --strategy rolling
v3-cancel-zdt-push
->cancel-deployment
Contributors: James Palmer, Nick Webb, Jenna Goldstrich, Alexander Berezovsky, Steve Taylor, Josh Collins, George Blue, Belinda Liu, Reid Mitchell, Sarah Weinstein
Note: The minimum version of the CC API this CF CLI release is compatible with is CC API v3.85.0. See our minimum supported version policy for more information.
v7.0.1
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
- Fix package management versioning issue
Known Issues
- Windows binary zip files do not include a symbolic link from
cf7 -> cf
due to lack of.zip
support for symbolic links on Windows. - There's been a regression in the login behavior where failures occur on certain cf-deployments which use alternative login paths other than UAA (this has been resolved in v7.0.2).