Skip to content

runs FOSSA poller as a Deployment instead of a long-running CronJob.#102

Merged
RobertKielty merged 1 commit intocncf:mainfrom
RobertKielty:poller-deployment-strategy
Apr 14, 2026
Merged

runs FOSSA poller as a Deployment instead of a long-running CronJob.#102
RobertKielty merged 1 commit intocncf:mainfrom
RobertKielty:poller-deployment-strategy

Conversation

@RobertKielty
Copy link
Copy Markdown
Collaborator

@RobertKielty RobertKielty commented Apr 14, 2026

Fixes #101

The FOSSA poller process is intentionally long-running: it performs an
initial poll, then continues polling on a fixed interval. Running that
binary under a CronJob causes the first Job to remain active indefinitely,
and with concurrencyPolicy=Forbid that blocks all future schedules.

This change

replaces the CronJob-based deployment path with a singleton
Deployment that matches the poller’s actual runtime behavior. It uses a
Recreate strategy so image updates do not briefly run two pollers in parallel.

updates the Makefile to:

  • add a deployment-backed fossa-poller deploy target
  • retire the legacy CronJob and any surviving poller Jobs during rollout
  • point fossa-poller-image-set at the Deployment and wait for rollout
  • keep the old fossa-poller-cronjob target as a deprecated alias

Adds a dedicated Kubernetes Deployment manifest for maintainerd-fossa-poller
with the existing secrets, service account, affinity, and explicit polling
interval configuration.

  The FOSSA poller process is intentionally long-running: it performs an
  initial poll, then continues polling on a fixed interval. Running that
  binary under a CronJob causes the first Job to remain active indefinitely,
  and with concurrencyPolicy=Forbid that blocks all future schedules.

  This change

  replaces the CronJob-based deployment path with a singleton
  Deployment that matches the poller’s actual runtime behavior. It uses a
  Recreate strategy so image updates do not briefly run two pollers in parallel.

  updates the Makefile to:
  - add a deployment-backed fossa-poller deploy target
  - retire the legacy CronJob and any surviving poller Jobs during rollout
  - point fossa-poller-image-set at the Deployment and wait for rollout
  - keep the old fossa-poller-cronjob target as a deprecated alias

  Adds a dedicated Kubernetes Deployment manifest for maintainerd-fossa-poller
  with the existing secrets, service account, affinity, and explicit polling
  interval configuration.

Signed-off-by: Robert Kielty <robert.kielty@cncf.io>
@RobertKielty RobertKielty self-assigned this Apr 14, 2026
@RobertKielty RobertKielty merged commit c58e218 into cncf:main Apr 14, 2026
9 checks passed
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.

maintainerd-fossa-poller runs indefinitely under a CronJob and blocks rescheduling

1 participant