Manage rollouts Stay organized with collections Save and categorize content based on your preferences.
A Cloud Deploy rollout includes phases. A phase is an ordered, logicalgrouping of jobs to do in a rollout.
Each phase includes jobs, which are the actions to take in each phase (forexample,deploy orverify). And each job can have zero or more job runs.A job run is an instance of a job. If the job hasn't run, there are no job runs.
This document describesphases,jobs, andjob runs, and how to manage them.
Structure of a rollout
A rollout is a Cloud Deploy resource that associates arelease with atarget.
Phases
A rollout consists of one or morephases.
For astandard deployment strategy, thereis only one phase:stable.
For acanary deployment strategy,There is a separate phase for each configured percentage. For example, if youconfigure a canary that deploys 25%, then 50%, then 100%, there will be threephases:
canary-25canary-50stable
These phase names are standard:canary-[PERCENTAGE] for canary stages, andstable for the 100% phase. However, if you configure acustom-automated canary or custom canary, you cancontrol the phase names.
Jobs and job runs
Each rollout phase includes one or more jobs.
For a rollout in astandard deploymentstrategy, with no deployment verification enabled, there is one phase(stable).
For a canary rollout, there will be a phase for each part of the canary(for example,canary-25,canary-50,stable), and for each phase there is adeploy job. If verification is enabled, there is also averify job for eachphase.
A job run is an instance of a job. For example, a job run for adeploy job isexecuted, and if it succeeds, there is no further job run for that job. If itfails, it can be retried as another job run.
Skipping phases the first time
Some deployment strategies (for example, canary) apportion traffic between theold and new versions. If you're deploying to a target for the first time,there's no old version, so we can't apportion the traffic.
For this reason, when you deploy a canary for the first time, we skip the canaryphase or phases and run thestable phase. After that, the application isdeployed, and future canary deployments will include the canary phases.
In a real-world situation, you will usually execute a canary deployment whereyour application is already running, so this phase skipping will be rare.
States within a rollout
Rollouts, phases, jobs, and job runs all have states. This section describes thestates for each.
Rollout states
A rollout will have one of the following states:
APPROVAL_REJECTEDThe rolloutrequired approval,but the approval was rejected.
CANCELLEDThe terminal state for rollouts that have beencanceled bya user.
CANCELLINGA user has canceled the rollout, but the cancellation has not finishedprocessing.
HALTEDIn aparallel deployment, if one or more childrollouts fail, but at least one child rollout succeeds, thecontroller rolloutis HALTED if there are more phases after the current one.
You can resume a halted controller rollout by doing any of the following:
Cancel the controller rollout
Retry or ignore any failed jobs on child rollouts
IN_PROGRESSA job run is processing.
FAILEDA job failed, and the user didn't choose toignore the failure.
PENDINGThe rollout has not begun processing. This state transitions to
IN_PROGRESSorCANCELED.PENDING_APPROVALThe rolloutrequires approval,but has not yet been approved.
PENDING_RELEASEThe rollout is waiting for therelease to be rendered.
SUCCEEDEDThe rollout has finished, with no failures.
Phase states
A phase will have one of the following states:
PENDINGThe phase is waiting for another phase in the rollout to finish.
IN_PROGRESSThe phase has started.
SUCCEEDEDThe phase completed successfully.
FAILEDA job in the phase failed, and the user didn't choose toignore the failure.
ABORTEDA previous phase failed.
SKIPPEDWhen you're running a deployment strategy, such as acanary, Cloud Deployskips to the
stablephase in cases where there isn't yet a running versionof the application with which to split traffic. In this case, the state isset toSKIPPED.
Job states
A job will have one of the following states:
ABORTEDIf a phase fails, subsequent phases are aborted.
If a job fails, and that failure is notignored, subsequentjobs are aborted. For example, if a phase includes a deploy job and a verifyjob, and the deploy job fails, the verify job is aborted.
DISABLEDSome jobs in a Phase might be disabled. For example, phases always includeverify jobs, whether or notverification isenabled. If verificationisn't enabled, then the verify job is set to
DISABLED.FAILEDA job run for this job failed, and the user didn't choose toignore the failure.
The user chose toterminate the job run for this job.
IGNOREDA job run for this job failed, and the user chose toignore the failure.
IN_PROGRESSA job run for this job is currently running.
PENDINGThe job run for this job is waiting to begin, because another phase or jobhasn't finished.
SKIPPEDWhen you're running a deployment strategy, such as acanary, Cloud Deployskips to the
stablephase in cases where there isn't yet a running versionof the application with which to split traffic. In this case, the state isset toSKIPPEDon jobs within the skipped phase or phases.SUCCEEDEDThe job run finished successfully, and the next job in the phase has started,or the next phase has started or is ready to start (possibly pending userinput), or the rollout has finished.
Job run states
FAILEDThe job run failed during execution.
IN_PROGRESSThe job run has begun, but hasn't finished.
TERMINATEDThe userterminated the job run.
TERMINATINGThe userterminated the job run, but it hasn't finishedterminating yet.
SUCCEEDEDWhen a job run finishes successfully, without failing or being terminated bya user, it's put into a
SUCCEEDEDstate, which
Manage your rollout
Using the Google Cloud console or the Google Cloud SDK, you can do thefollowing with a Cloud Deploy rollout:
If you're using parallel deploymentwith a canary deployment strategy,seehow to manage parallel canary rollouts.
Advance a rollout
For targets configured to use a deployment strategy other than "standard," youneed to advance the rollout from phase to phase.
For example, if you have a target configured to perform a simple canary deploywith 50% andstable (100%) phases only, you would need to advance the rolloutonce, from thecanary-50 phase to thestable (100%) phase.
gcloud
gclouddeployrolloutsadvanceROLLOUT_NAME\--release=RELEASE_NAME\--delivery-pipeline=PIPELINE_NAME\--region=REGIONWhere:
ROLLOUT_NAME is the name of the current rolloutwhich you're advancing to the next phase.
RELEASE_NAME is the name of the release that thisrollout is part of.
PIPELINE_NAME is the name of the delivery pipelineyou're using to manage deployment of this release.
REGION is the name of the region in which therelease was created, for exampleus-central1. This is required.
See the Google Cloud SDK reference for more information about thegcloud deploy rollouts advance command.
Console
Click your pipeline shown in the list of delivery pipelines.
The Delivery pipeline details page shows a graphical representation of your delivery pipeline's progress.
On theRollouts tab, underDelivery pipeline details, clickthe name of your rollout.
The rollout details page is shown, for that rollout.

Notice that in this example, the rollout has a
canary-50phase and astablephase. Your rollout might have more phases or different phases.ClickAdvance rollout.
The rollout is advanced to the next phase.
Cancel a rollout
You can cancel any rollout which hasn't finished. You can also cancel a failedrollout to prevent further actions on it (such as ignore or retry). The rolloutmust be in one of the following states:
FAILEDHALTEDIN_PROGRESSPENDINGPENDING_APPROVALPENDING_RELEASE
After you cancel a rollout, that rollout is in aCANCELLING state until alloutstanding job runs have completed. You canterminateoutstanding job runs that you don't want to wait for. Once the rollout isCANCELLED, it can no longer be advanced or modified.
To cancel a rollout:
gcloud
gclouddeployrolloutscancelROLLOUT_NAME\--release=RELEASE_NAME\--delivery-pipeline=PIPELINE_NAME\--region=REGIONWhere:
ROLLOUT_NAME is the name of the current rolloutwhich you're advancing to the next phase.
RELEASE_NAME is the name of the release that thisrollout is part of.
PIPELINE_NAME is the name of the delivery pipelineyou're using to manage deployment of this release.
REGION is the name of the region in which therelease was created, for exampleus-central1. This is required.
See the Google Cloud SDK reference for more information about thegcloud deploy rollouts cancel command.
Console
Click your pipeline shown in the list of delivery pipelines.
The Delivery pipeline details page shows a graphical representation of your delivery pipeline's progress.
On theRollouts tab, underDelivery pipeline details, clickthe name of your rollout.
The rollout details page is shown, for that rollout.

Notice that in this example, the rollout has a
canary-50phase and astablephase. Your rollout might have more phases or different phases.ClickCancel rollout.
The rollout is canceled.
Terminate a job run
You can end a job run that's currently in progress. You might want to do this,for example, if a job run appears to be taking too long or not working asexpected. The job run must beIN_PROGRESS for you to terminate it.
gcloud
gclouddeployjob-runsterminateJOB_RUN_ID\--release=RELEASE_NAME\--delivery-pipeline=PIPELINE_NAME\--rollout=ROLLOUT_NAME\--region=REGIONWhere:
JOB_RUN_ID is the (UUID) of the job run you want toterminate. You can find the job run ID in the Google Cloud console, forCloud Deploy, on the rollout page:

You can also get the job runs ID using thegcloud deploy rolloutsdescribe command.
RELEASE_NAME is the name of the release that thisjob run is part of.
PIPELINE_NAME is the name of the delivery pipelineyou're using to manage deployment of this release.
ROLLOUT_NAME is the name of the rollout this jobrun is part of.
REGION is the name of the region in which therelease was created, for exampleus-central1. This is required.
See the Google Cloud SDK reference for more information about thegcloud deploy job-runs terminate command.
Console
Click your pipeline shown in the list of delivery pipelines.
The Delivery pipeline details page shows a graphical representation ofyour delivery pipeline's progress.
On theRollouts tab, underDelivery pipeline details, clickthe name of your rollout.
The rollout details page is shown, for that rollout.

Notice that in this example, the rollout has a
canary-50phase and astablephase. Your rollout might have more phases or differentphases.UnderPhases, click the phase that includes the job whose job runyou're terminating.
UnderJob runs select the specific job run you're terminating, thenclickTerminate.
The job run is terminated, and the job status, as shown in thePhasestable, is
Failure.
After you terminate a job run, the job is considered failed and you can do anyof the following:
- Leave it that way and disregard the failed rollout
- Retry the job
- Ignore the job and continue with the next job or phase in therollout
Ignore a job
You can ignore a failed job and move immediately to the next job in the phase.That job might have failed for any reason, including you or someone elseterminated a job run for that job.
A failed job means a failed phase and a failed rollout. However if you ignorethe failure, both the phase and the rollout can be progressed and can ultimatelyhaveSUCCEEDED states.
gcloud
gclouddeployrolloutsignore-jobROLLOUT_NAME\--release=RELEASE_NAME\--delivery-pipeline=PIPELINE_NAME\--job-id=JOB_ID\--phase-id=PHASE_ID\--region=REGIONWhere:
ROLLOUT_NAME is the name of the rollout this jobrun is part of.
RELEASE_NAME is the name of the current releasethat includes this job.
PIPELINE_NAME is the name of the delivery pipelineyou're using to manage deployment of this release.
JOB_ID is the name of the job to ignore, forexampleDEPLOY. You can find the job name in thePhases table for therollout, in the Google Cloud console:

PHASE_ID is the name of the phase that includes thejob you're ignoring.
REGION is the name of the region in which therelease was created, for exampleus-central1.
See the Google Cloud SDK reference for more information about thegcloud deploy rollouts ignore-job command.
Console
Click your pipeline shown in the list of delivery pipelines.
The Delivery pipeline details page shows a graphical representation ofyour delivery pipeline's progress.
On theRollouts tab, underDelivery pipeline details, clickthe name of your rollout.
The rollout details page is shown, for that rollout.
Select the failed job to ignore.
Click theIgnore failures button.
The failed job run is ignored, and the rollout continues as if the jobhad succeeded. That is, if there are other jobs in the same phase, theyare executed. Otherwise, the rollout is ready to advance to the nextphase.

Retry a failed job
You can retry a job run that failed. The job can fail for any of the followingreasons:
A job run failed to complete.
For example, there could have been a permissions failure.
A userterminated a job run from that job.
Terminating a job run results in a failed job, which you can retry.
A verification test failed.
For averification job, a verification testfailed. Even though the verification job completed correctly, one of yourverification tests failed, and we propagate that back to the verification job.In this case, you would retry the job as part of debugging the failed testagainst your application.
To retry a failed job:
gcloud
gclouddeployrolloutsretry-jobJOB_NAME\--release=RELEASE_NAME\--delivery-pipeline=PIPELINE_NAME\--rollout=ROLLOUT_NAME\--phase=PHASE_ID\--region=REGIONWhere:
JOB_NAME is the name of the job that you'reretrying. For example, if you're retrying the verify job after a failedverification, this would beverify.
RELEASE_NAME is the name of the release that thisjob run is part of.
PIPELINE_NAME is the name of the delivery pipelineyou're using to manage deployment of this release.
ROLLOUT_NAME is the name of the rollout this jobrun is part of.
PHASE_ID is name of the phase that this job ispart of. For example,canary-50, orstable.
REGION is the name of the region in which therelease was created, for exampleus-central1. This is required.
See the Google Cloud SDK reference for more information about thegcloud deploy rollouts retry-job command.
Console
Click your pipeline shown in the list of delivery pipelines.
The Delivery pipeline details page shows a graphical representation ofyour delivery pipeline's progress.
On theRollouts tab, underDelivery pipeline details, click thename of your rollout.
The rollout details page is shown, for that rollout.
UnderPhases and Jobs, click the phase that includes the job you'reretrying.
Select the job to retry.
ClickRetry, and confirm.

The job run is executed again and the job status, as shown in thePhases table, is "in progress". If there are other jobs in the samephase, they are executed. Otherwise, the rollout is ready to advance tothe next phase.
What's next
Find out more abouthow deployment strategies workin Cloud Deploy.
See theCloud Deploy service architecture documentation formore information about how rollouts, phases, jobs, and job runs fit in withthe rest of Cloud Deploy.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-02-18 UTC.