Introducing the v7 beta cf CLI
Installation
Note: V7 beta binaries will be called cf7
to allow for coexistence with V6 cf
binaries.
Package Manager Installation
Installers
Important note: Due to a bug with both the Mac and Windows Installer, we are removing the links to the v7 beta for these two Operating Systems. We hope to release 7.0.0-beta.25 with the fix soon.
Binaries
Compatibility
Tested against CC API Release Candidate 1.86.0-rc.21.
Background
The CC API team have been working on developing the v3 API, which introduced new features including running tasks, defining app processes via a Procfile, advanced deployment strategies, sidecars, and granular control of an application lifecycle.
To expose the v3 API to end users, the CLI team implemented v3 prefixed commands in CLI release v6.32.0; and in CLI release v6.38.0, we updated the cf7 app
to use the v3 endpoint.
Whilst working toward this v3 effort, both the CC API and CLI teams came to the realization that development work for the v3 API, and the CLI's adoption of it, is best done as a dual effort.
To this end, both teams contributed engineers to form the V3 Acceleration Team, a team tasked with completing the v3 API, and developing a v7 cf CLI to support it - both of which are under active development.
Goals for v7 beta cf CLI
Release and make generally available cf CLI v7 which is completely backed by the v3 CC API so that we can unlock feature development which was not possible on the v2 CC API. As such, we've purposely kept changes between the v6 cf CLI and the v7 cf CLI to a minimum. Where there are differences, we have documented potentially breaking changes here.
Important Notes about v7 beta CLI
- Since both the v7 beta cf CLI and the backing CC API v3 are both in active development, it is important to note that the v7 beta cf CLI is subject to change as we move toward completing development. Therefore, using the v7 beta cf CLI in scripts is not recommended.
- Not all cf CLI v7 commands are backed by the CC API v3. As a result, commands still fall back to the v2 API. As we release the v7 beta cf CLI, more v3 resources will be developed along with the v7 beta cf CLI support for it.
- In order to complete the v7 beta cf CLI in a timely matter, we develop and test against the latest CAPI release candidate. When v7 cf CLI is generally available, we will start supporting official CC API releases again.
v3 CC API Resources and backing v7 beta cf CLI commands
As of 7.0.0-beta.24
, the cf7 CLI beta commands backed by the v3 CC API include:
- push (Not a resource but the bulk of our work has been geared toward building
cf7 push
that is completely backed by the v3 API) epic - domains epic
- routes epic
- feature-flags epic
- stacks epic
- buildpacks epic
- spaces epic
- organizations epic
- some v3 Services API support:
create-service-broker
Highlights
Rolling Deployments
cf7 push
is completely backed by the v3 API. New features including rolling deployments have been added tocf7 push app --strategy rolling
. See New Workflows for more information. epic epic
Labels - metadata support
- labels metadata support (new commands:
set-label
,unset-label
,labels
) for the following resources:apps
,spaces
,orgs
. Additional support forbuildpacks
andstacks
and adding annotations and filtering labels coming soon. epic
Commands backed by the v3 API
- Resources mentioned above all completely backed by the v3 API on v7 beta cf CLI. Expect changes to flag options and arguments, removal of commands (kept to a minimum), a change to exit codes for one command (
create-buildpack
anddelete
commands where the resource does not exist story), and new error output which comes directly from the v3 API. Errors and warnings print tostderr
instead ofstdout
. For full details regarding changes to commands, please see v6 versus v7 command differences. - Pre-fixed
v3
commands have been removed and are now the default command on v7. story
Please read the official CF documentation for additional information, and changes you might expect for 7.0.0-beta.24
.
Gotchas
cf7 restart
has not been updated to use rolling deployments, we hope to start that work sooncf7 start
does not restage on v7. We hope to update thecf7 restart
command and thecf7 start
command soon.cf7 routes
is missing theservices
column, we are waiting on development of v3 servicescf7 org
is missing thequotas
column, we are waiting on development of the quotas resourcecf7 create-org
does not assign the current user roles in the org after creating, since we are waiting on development of v3 users/roles. Roles can still be assigned afterwards withcf7 set-org-role
.cf7 create-space
does not assign the current user roles in the space after creating, since we are waiting on development of v3 users/roles. Roles can still be assigned afterwards withcf7 set-space-role
.
Documentation Resources
- Official Cloud Foundry documentation notes for v7 beta - includes information about breaking changes and feature development work available on v7
- Additional cf CLI v7 beta release notes for previous releases
Feedback
Do you have feedback or a bug report for the cf CLI v7 beta? Please file a GitHub issue here, or reach out on Slack #v3-acceleration-team.
Change Log for 7.0.0-beta.24
Below are the release notes for 7.0.0-beta.24
. To review previous release notes for older version of the cf CLI v7 beta, go here.
CF Push
- experimental command output removed from
cf7 push
story - support for
--random-route
is added tocf7 push
story CF_STARTUP_TIMEOUT
andCF_STAGING_TIMEOUT
environment variables added tocf7 push
help text storycf7 push
is completely backed by the v3 API story story story--no-route
will now unmap routes including the default route story- bug fix for when bit service is enabled,
cf7 push
works as expected story - bug fix for pushing an app when the directory contains empty files story
- additional
cf7 push
docker and buildpack-related bug fixes story and story story story
Rolling Deployments
- explorations into updating an app when it is in the
Deploying
state; we advised users to usecancel-deployment
for now and the CC API team will review in the future story
Orgs and Spaces
cf7 create-space
,cf7 space
,cf7 delete-space
,cf7 spaces
, andcf7 rename-space
are completely backed by the v3 API story story story story storycf7 orgs
is backed by the v3 API story
Update-One Is Generally Available
The SAPI and Services Enablement Team are GA'ing the Update-One Feature in this release. story
- Adds a
--force
flag toupdate-service
to support automation workflows story - Adds a helpful message if an upgrade is not available story
Additional Changes
cf7 apps
is completely backed by the v3 APIcf7 delete
command now supports the-r
flag to delete routes mapped to the app.- Breaking:
cf7 delete app -r
- no longer removes routes for the app if the route is bound to another app story
- Breaking:
V3 Acceleration Team Core Contributors to v7 CLI beta: Eli Wrenn, Reid Mitchell, Piyali Banerjee, Luan Santos, Anand Gaitonde, Greg Cobb, Joseph Palermo, Mike Kenyon, Supraja Narasimhan, Abby Chau, Harsha Nandiwada, Zach Robinson, Spencer Hawley, Brian Cunnie, Michelle He
CF CLI - v7 Feature Development Contributors: Brendan Smith, Andrew Crump, Abby Chau, Eric Promislow, Alexander Berezovsky
CC API - v7 Feature Development Contributors Tim Downey, Chris Selzo, Connor Braa, Scott Sisil, Mona Mohebbi, Renee Chu, Sannidhi Jalukar
Services API Contributors: Aarti Kriplani, George Blue, Georgi Lozev, Henry Stanley, Nikolay Maslarski, Will Martin, Oleksii Fedorov
Special Thanks: Relint Team for exploring the v7 beta cf CLI migration, Landon Jarzynski for all the docs-related support