Skip to content

release-train: develop -> staging - #573

Merged
tracebloc-release-train[bot] merged 5 commits into
stagingfrom
release-train/to-staging
Aug 4, 2026
Merged

release-train: develop -> staging#573
tracebloc-release-train[bot] merged 5 commits into
stagingfrom
release-train/to-staging

Conversation

@LukasWodka

@LukasWodka LukasWodka commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Automated promotion by the release train (RFC-0008 D14). Head is the train-managed release-train/to-staging branch (a mirror of develop), so it never collides with a human PR. Merged only when the fr-gate is green.


Note

Medium Risk
Changes when the image-refresh CronJob fails vs skips, which affects automatic rollout of jobs-manager/pods-monitor; misclassification could either churn restarts or leave stale images until noticed.

Overview
Bumps the client Helm chart to 1.9.12 as part of the develop → staging release train.

Image-refresh CronJob behavior is tightened so operational failures are visible instead of silently succeeding:

  • Before rollout checks, kubectl rollout status and get deployment use --request-timeout=15s so a wedged API cannot hang a tick indefinitely while concurrencyPolicy: Forbid blocks later runs.
  • A failed rollout status is only treated as a benign skip when the deployment still exists (rollout in progress / not Ready). NotFound, RBAC denials, and other API errors now fail the job (exit 1) instead of exiting 0 and leaving the CronJob green while refresh never runs (release-train: staging -> main #571).
  • The Job spec adds activeDeadlineSeconds: 1800 so a legitimate tick is not killed mid-rollout status wait (must exceed the default 10m rollout timeout); without it, digest annotations might never land and later ticks could restart forever (fix(chart): image-refresh CronJob must not treat every error as a benign skip (#571) #572).

Reviewed by Cursor Bugbot for commit 6f503d2. Bugbot is set up for automated code reviews on this repo. Configure here.

…ign skip

Bugbot on the prod promotion (client#571), Medium. The settled-gate ran
`kubectl rollout status` and treated ANY non-zero as 'in progress -- skip'
(exit 0). But non-zero is also NotFound, RBAC denial, and API errors -- so a
misconfigured or unreachable deployment left the CronJob GREEN forever while
image refresh never ran. And the call had no --request-timeout (only --timeout,
the rollout wait), so a wedged API server could hang the tick with no
activeDeadlineSeconds, and concurrencyPolicy: Forbid would then block every later
tick.

Now: a non-zero rollout status is disambiguated -- if `kubectl get deployment`
still succeeds the deployment is genuinely present-but-unsettled (legit skip,
exit 0); otherwise it is an error the job SURFACES (exit 1). --request-timeout=15s
bounds each API call, and activeDeadlineSeconds=300 caps the whole tick as a
backstop.

Refs: tracebloc/backend#1426
…ign skip

Bugbot on the prod promotion (client#571), Medium. The settled-gate treated ANY
non-zero `kubectl rollout status` as 'in progress -- skip' (exit 0). But non-zero
is also NotFound, RBAC denial, and API errors, so a misconfigured or unreachable
deployment left the CronJob GREEN forever while refresh never ran. The call also
had no --request-timeout (only --timeout, the rollout wait), so a wedged API could
hang the tick with no activeDeadlineSeconds -- and concurrencyPolicy: Forbid then
blocks every later tick.

Now a non-zero status is disambiguated: if `kubectl get deployment` still succeeds
the deployment is genuinely present-but-unsettled (legit skip, exit 0); otherwise
it is surfaced (exit 1). --request-timeout=15s bounds each API call and
activeDeadlineSeconds=300 caps the whole tick.

(Corrects a prior no-op commit on this branch that committed the file unmodified
because a patch anchor mismatched the real indentation.)

Refs: tracebloc/backend#1426
…ercut it

Bugbot on client#572, High. My 300s deadline was BELOW the default
imageRefresh.rolloutTimeout of 10m -- a tick doing rollout restart + rollout
status could be DeadlineExceeded mid-wait, so the post-success annotation never
lands and later ticks re-restart forever. Raised to 1800s (well above 10m) with a
comment tying it to rolloutTimeout; it is only a backstop since every call is
--request-timeout-bounded.
…ent)

The chart-version-guard requires a Chart.yaml bump when chart content changes; the
CronJob template fix (#571/#572) is chart content, so a Helm repo would not
republish it without a new version.
fix(chart): image-refresh CronJob must not treat every error as a benign skip (#571)
@LukasWodka
LukasWodka requested a review from saadqbal as a code owner August 4, 2026 06:50
@LukasWodka

Copy link
Copy Markdown
Contributor Author

bugbot run

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 6f503d2. Configure here.

@tracebloc-release-train tracebloc-release-train Bot added gate-nudge Toggled by the release train to (re-)fire the fr-gate and removed gate-nudge Toggled by the release train to (re-)fire the fr-gate labels Aug 4, 2026
@LukasWodka

Copy link
Copy Markdown
Contributor Author

bugbot run

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 6f503d2. Configure here.

@tracebloc-release-train tracebloc-release-train Bot added gate-nudge Toggled by the release train to (re-)fire the fr-gate and removed gate-nudge Toggled by the release train to (re-)fire the fr-gate labels Aug 4, 2026
@tracebloc-release-train
tracebloc-release-train Bot merged commit 6766c1a into staging Aug 4, 2026
40 checks passed
@LukasWodka

Copy link
Copy Markdown
Contributor Author

/fr-pass

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