Argo Rollouts

Buoy detects Argo Rollouts by their group and kind (argoproj.io, Rollout). The detail view gains a Rollout tab and a set of actions in the Actions menu. The Pods tab works out of the box because the Rollout selector is honored the same way Buoy honors a Deployment selector.

Rollout Tab

Two layouts, one per strategy. Buoy picks based on spec.strategy.canary vs. spec.strategy.blueGreen.

Headline

Pills across the top of the tab: phase, strategy (Canary or Blue-Green), and conditional paused, aborted, or promote-full badges. For canary, the headline also shows the current step (step N of M) and the live canary / stable weight split from status.canary.weights.

Banners

  • Aborted: the rollout has been aborted; the Retry action will clear it.
  • Promote-full requested: a Promote Full has been issued and is propagating.
  • Pause conditions: the rollout is parked. Each status.pauseConditions entry shows its reason. This is the panel that tells you why a rollout is stuck and that Promote will release it.

Replicas

Desired, ready, available, updated, and unavailable counts, plus the HPA-managed replica count when an HPA owns the rollout.

Canary Panel

Stable and canary service names, the configured traffic provider, maxSurge, and maxUnavailable. A stacked weight bar shows the current stable | canary split.

The spec.strategy.canary.steps[] list renders with each step tagged done, current, or pending. The “current” tag tracks status.currentStepIndex, which points at the next step to execute, so a step at the current index is the one that is running or paused.

Blue-Green Panel

Two side-by-side lanes labeled Active and Preview, each showing the bound Service and the pod-template-hash from status.blueGreen.activeSelector and previewSelector. The auto-promotion flags and scaleDownDelay metadata appear alongside.

ReplicaSets

Watched live with the Rollout’s selector. Each row is tagged stable, canary, active, preview, or old by comparing the RS’s rollouts-pod-template-hash label against status.stableRS, status.currentPodHash, status.blueGreen.activeSelector, and status.blueGreen.previewSelector. Click a row to open the RS detail.

Conditions

The standard conditions table; rendered only when non-empty.

Actions

All actions live in the Actions menu and route through a confirmation modal. Which actions appear depends on the current state (paused, has pause conditions, aborted).

ActionVisible whenEffect
RestartAlwaysStamps spec.restartAt with the current timestamp. The controller recreates pods older than that timestamp.
PauseNot currently pausedSets spec.paused = true. Distinct from a canary step’s pause condition.
Resumespec.paused == trueClears spec.paused. Does not clear canary-step pause conditions.
Promote (step)Paused or has pause conditionsNulls status.pauseConditions, clears status.abort, and clears spec.paused. Advances past the current canary pause. Routed through the /status subresource.
Promote FullPaused or has pause conditionsSets status.promoteFull = true. Skips every remaining canary step. Routed through the /status subresource.
AbortNot abortedSets status.abort = true. Scales the canary ReplicaSet to zero, routes 100% of traffic to stable. Routed through the /status subresource.
RetryAbortedClears status.abort. The controller resumes from the current step. Routed through the /status subresource.

Edit this page on GitLab