Context
Upstream PR shopsys/deployment#72 refined the graceful cron lifecycle beyond what phase 1 of
this chart implements. Differences worth adopting:
strategy: Recreate — our cron Deployment kept the legacy RollingUpdate
(maxSurge: 1, maxUnavailable: 0), which briefly runs two cron pods concurrently
during the date-label-forced replacement. Recreate guarantees the old pod drains fully
before the new one starts.
- crond in the foreground (
exec crond -f || exec cron -f, log tail backgrounded) —
proper PID 1 signal handling; our current command backgrounds crond and tails a FIFO as
the main process.
- Console commands instead of phing in the preStop drain:
bin/console deploy:cron:lock / deploy:cron:watch (new application interface) instead of
phing -S cron-lock / cron-watch; lock output redirected to a file, || true guards.
terminationGracePeriodSeconds: 3000 upstream vs our 3600 — align the default (pick one,
document).
Tasks
References: shopsys/deployment#72; related: #3 (supercronic), #19 (native CronJobs — if that
lands, parts of this become obsolete)
Context
Upstream PR shopsys/deployment#72 refined the graceful cron lifecycle beyond what phase 1 of
this chart implements. Differences worth adopting:
strategy: Recreate— our cron Deployment kept the legacy RollingUpdate(
maxSurge: 1, maxUnavailable: 0), which briefly runs two cron pods concurrentlyduring the
date-label-forced replacement. Recreate guarantees the old pod drains fullybefore the new one starts.
exec crond -f || exec cron -f, log tail backgrounded) —proper PID 1 signal handling; our current command backgrounds crond and tails a FIFO as
the main process.
bin/console deploy:cron:lock/deploy:cron:watch(new application interface) instead ofphing -S cron-lock/cron-watch; lock output redirected to a file,|| trueguards.terminationGracePeriodSeconds: 3000upstream vs our 3600 — align the default (pick one,document).
Tasks
strategy: Recreatefor the cron Deploymentbin/console deploy:cron:lock/watch(confirm minimum project-base versionthat ships these commands; keep phing fallback configurable if needed)
cron_test.yaml, golden snapshots, deviations doccron-suspendhook interplay (scale-to-0 + Recreate)References: shopsys/deployment#72; related: #3 (supercronic), #19 (native CronJobs — if that
lands, parts of this become obsolete)