Skip to content

Fix: signal Helm --dry-run to the server and gate ArgoRollouts manifest reporting on dry-run#2064

Closed
HuyPhanNguyen wants to merge 1 commit into
mainfrom
huy/2026/fd-565-helm-dryrun-livestatus-unavailable
Closed

Fix: signal Helm --dry-run to the server and gate ArgoRollouts manifest reporting on dry-run#2064
HuyPhanNguyen wants to merge 1 commit into
mainfrom
huy/2026/fd-565-helm-dryrun-livestatus-unavailable

Conversation

@HuyPhanNguyen

Copy link
Copy Markdown
Contributor

Background

A Helm deployment step run with --dry-run that fails or is cancelled causes Kubernetes Live Status to be marked Unavailable on the server, even though a dry-run never changes the cluster (FD-565). The server had no way to know a deployment was a dry-run. Separately, the ArgoRollouts inline manifest reporter (HelmUpgradeExecutor) did not skip reporting under --dry-run, unlike the default HelmManifestAndStatusReporter.

Results

The Helm KOS convention now emits a k8s-dry-run service message before running helm when --dry-run is detected, giving the server a durable, immediate signal (consumed by the paired server change). The ArgoRollouts inline path now also skips manifest reporting under --dry-run, matching the default path.

Fixes FD-565

Before

  • No signal to the server that a deployment is a dry-run, so a failed/cancelled dry-run flips Live Status to Unavailable.
  • With argo-rollouts-support enabled, HelmUpgradeExecutor reported manifests even for a --dry-run.

After

  • k8s-dry-run is emitted (via a shared IsHelmDryRun check) before helm runs, so the signal is recorded even if the task later fails or is cancelled.
  • HelmUpgradeExecutor.ReportManifestAndSetAppliedResources is skipped under --dry-run.

Pairs with

The OctopusDeploy server PR that consumes k8s-dry-run and skips the Unavailable flip.

Reducing risk

Automated Tests

  • Run full chain build

Pre-requisites

  • I have considered appropriate testing for my change.
  • I have considered the appropriate target version for this PR.
  • I have considered safety nets to reduce any time-to-recovery for my change.

…st reporting under --dry-run

Emit a k8s-dry-run service message early in the Helm KOS convention when --dry-run is
detected, so the server can avoid marking Live Status Unavailable if the dry-run task
fails or is cancelled. Also gate the ArgoRollouts inline manifest reporter on the same
--dry-run check, matching the existing gate in HelmManifestAndStatusReporter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant