You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
* Update rollout managementAdded new configuration specs for rollouts with BYOA and streamlined section content and structure* Add argo cd doc reference to resource actions* Update manage-application.md* Add warning for resource action customization
Copy file name to clipboardExpand all lines: _docs/deployments/gitops/manage-application.md
+86-60Lines changed: 86 additions & 60 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -479,19 +479,76 @@ max-width="70%"
479
479
%}
480
480
481
481
## Manage rollouts for Argo CD application deployments
482
-
Control ongoing rollouts by resuming indefinitely paused steps, promoting rollouts, aborting, restarting and retrying rollouts.
482
+
A rollout represents the progressive deployment of a new version of an application, allowing controlled updates with rollback capabilities.
483
483
484
+
##### Rollout controls
485
+
View rollout progress in the Timeline tab, and manage rollouts through multiple controls:
486
+
* **Timeline tab**: Pause and resume ongoing rollouts.
487
+
* **Rollout Player**: Offers additional controls, including custom actions such as skipping steps during rollouts.
488
+
* **Rollout resources in Current State tab**: Offers the same controls as the Rollout Player.
484
489
490
+
##### Custom action configuration
491
+
For GitOps Runtimes with existing Argo CD instances, to enable actions in the Rollout Player and in the Current State tab for the Rollout entity, you must configure custom actions in the Argo CD config map (`argocd-cm`).
492
+
See [Argo CD's official documentation on resource actions](https://argo-cd.readthedocs.io/en/stable/operator-manual/resource_actions/#define-a-custom-resource-action-in-argocd-cm-configmap){:target="\_blank"}.
485
493
486
-
### Pause/resume ongoing rollouts
487
-
Pause and resume ongoing rollouts directly from the Timeline tab in the GitOps Apps dashboard.
488
-
If the rollout is already automatically paused as result of a step definition, this action pauses the rollout even after the pause duration.
494
+
### Controls for ongoing rollouts
495
+
The table describes the controls available to manage rollouts.
| **Rollback** | Rolls back to the previous deployment. See also [Prerequisites for rollback](#prerequisites-for-rollback). | {::nomarkdown}<ul><li>Timeline</li><li>Rollback Player</li><li>Current State</li>{:/} |
501
+
| **Abort** | Terminate the current rollout. | {::nomarkdown}<ul><li>Rollback Player</li><li>Current State</li>{:/} |
502
+
| **Pause** | Pause the rollout. If the rollout is already automatically paused as the result of a step definition, clicking Pause continues pausing the rollout also after the pause duration configured. | {::nomarkdown}<ul><li>Timeline</li><li>Rollback Player</li><li>Current State</li>{:/} |
503
+
| **Resume** | Resume a rollout that was paused either manually by clicking Pause, or automatically through the step's definition. | {::nomarkdown}<ul><li>Timeline</li><li>Rollback Player</li><li>Current State</li>{:/} |
504
+
|**Retry** | Retry a rollout that has been aborted. Restarts the rollout from the beginning. Available only when a rollout has been aborted. | {::nomarkdown}<ul><li>Rollback Player</li><li>Current State</li>{:/} |
505
+
| **Skip step** | Skip execution of current step. Such steps are marked as Skipped in the rollout visualization. | {::nomarkdown}<ul><li>Rollback Player</li><li>Current State</li>{:/} |
506
+
| **Promote full** | Skip all remaining steps, and deploy the current image. | {::nomarkdown}<ul><li>Rollback Player</li><li>Current State</li>{:/}|
507
+
508
+
### Configure custom actions for Rollout entities
509
+
For Runtime installations with existing Argo CD instances, configure custom rollout actions in Argo CD's config map. Otherwise, rollout controls such as **Pause** and **Skip Current Step** are disabled in the Rollout Player and in the Current State tab.
490
510
491
-
1. In the Codefresh UI, from the sidebar, select **GitOps Apps**.
492
-
1. Select the application and go to the Timelines tab.
493
-
1. In the deployment record for the ongoing rollout, expand **Updated Services**.
494
-
1. Based on the current state of the rollout, click **Pause** or **Resume**, as relevant.
511
+
{{site.data.callout.callout_warning}}
512
+
**Argo CD warning**
513
+
By default, defining a resource action customization will override any built-in action for this resource kind. As of Argo CD version 2.13.0, if you want to retain the built-in actions, you can set the `mergeBuiltinActions` key to `true`. Your custom actions will have precedence over the built-in actions.
local fullyPromoted = obj.status.currentPodHash == obj.status.stableRS
524
+
actions["pause"] = {["disabled"] = fullyPromoted or obj.spec.paused == true}
525
+
actions["skip-current-step"] = {["disabled"] = obj.spec.strategy.canary == nil or obj.spec.strategy.canary.steps == nil or obj.status.currentStepIndex == table.getn(obj.spec.strategy.canary.steps)}
526
+
return actions
527
+
definitions:
528
+
- name: pause
529
+
action.lua: |
530
+
obj.spec.paused = true
531
+
return obj
532
+
- name: skip-current-step
533
+
action.lua: |
534
+
if obj.status ~= nil then
535
+
if obj.spec.strategy.canary ~= nil and obj.spec.strategy.canary.steps ~= nil and obj.status.currentStepIndex < table.getn(obj.spec.strategy.canary.steps) then
536
+
if obj.status.pauseConditions ~= nil and table.getn(obj.status.pauseConditions) > 0 then
alt="Options for `rollout` resource in the Current State tab"
588
+
caption="Options for `rollout` resource in the Current State tab"
589
+
max-width="50%"
590
+
%}
529
591
530
-
{: .table .table-bordered .table-hover}
531
-
| Rollback player option | Description |
532
-
| -------------- | ------------|
533
-
| **Rollback** | Rolls back to the previous deployment. See also [Prerequisites for rollback](#prerequisites-for-rollback). |
534
-
|**Abort** | Terminate the current rollout. |
535
-
| **Pause** | Pause the rollout. If the rollout is already automatically paused as the result of a step definition, clicking Pause pauses the rollout also after the pause duration. |
536
-
| **Resume** <!---{::nomarkdown}<img src="../../../images/icons/rollout-resume.png" display=inline-block"> {:/}-->| Resume a rollout that was paused either manually by clicking Pause, or automatically through the step's definition. |
537
-
|**Retry** | Retry a rollout that has been aborted. Restarts the rollout from the beginning. Available only when a rollout has been aborted. |
538
-
| **Skip step** <!---{::nomarkdown}<img src="../../../images/icons/rollout-skip-step.png" display=inline-block"> {:/}--> | Skip execution of current step. Such steps are marked as Skipped in the rollout visualization. |
539
-
| **Promote full** <!---{::nomarkdown}<img src="../../../images/icons/rollout-promote-full.png" display=inline-block"> {:/} --> | Skip all remaining steps, and deploy the current image. |
540
592
541
593
542
594
543
595
### Manually rollback completed rollout to previous revision
544
596
<!--- add screenshots -->
545
-
Manually rollback a completed rollout to a previous revision when and if needed. If after a successful analysis run and rollout, your application is not functioning as it should, you can rollback to a prior revision from the Rollout’s revision history. The revision depth is determined by the `spec.revisionHistoryLimit` parameter in the [Rollout Specification](https://argoproj.github.io/argo-rollouts/features/specification/#rollout-specification){:target="\_blank"}.
597
+
Manually rollback a completed rollout to a previous revision when and if needed. If after a successful analysis run and rollout, your application is not functioning as it should, you can rollback to a prior revision from the Rollout’s revision history.
598
+
599
+
The revision depth is determined by the `spec.revisionHistoryLimit` parameter in the [Rollout Specification](https://argoproj.github.io/argo-rollouts/features/specification/#rollout-specification){:target="\_blank"}.
546
600
Manual rollback changes the live state of the rollout resource to the state in the previous commit that you select.
547
601
548
602
1. In the Codefresh UI, from the sidebar, select **GitOps Apps**.
549
603
1. Select the application and select the **Timeline** tab.
550
604
1. Click the name of the rollout to rollback.
551
-
1. From the **Choose version toRollabck** dropdown, select the revision to rollback to.
605
+
1. From the **Choose version toRollback** dropdown, select the revision to rollback to.
552
606
1. Review the changes in the revision.
553
607
1. In the Rollout Player, click **Rollback to**.
554
608
555
609
556
-
### Manage the Rollout resource
557
-
558
-
Control the rollout through the options available for the Rollout resource in the Current State tab.
559
-
560
-
1. In the Codefresh UI, from the sidebar, select **GitOps Apps**.
561
-
1. Select the application and go to the Current State tab.
562
-
1. Open the context menu of the `Rollout` resource, and select the relevant option.