Scheduled jobsΒΆ

We’ve several different scheduled jobs across our infrastructure:

  • Cronjobs on the Linux servers

  • systemd timers on the Linux servers

  • Scheduled GitLab CI pipelines

  • Application tasks (e.g. via Celery)

SchedulesΒΆ

Important

To ensure a stable environment, it’s important that all the jobs are properly synced in time. Whenever setting up a new job, ensure you’re following the schedules below.

OS schedulesΒΆ

Time

Weekday

Action

Source

*:00 (+ random 15min)

everyday

Run borg backups.

borg role

04:30 (+ random 15min)

everyday

Download apt upgrades. After CI jobs, before upgrades.

apt_unattended_upgrades role

05:30 (+ random 5min)

everyday

Install apt upgrades. After CI jobs & downloads, before morning.

apt_unattended_upgrades role

05:50 / 05:55

Sundays

Reboot systems when required. After upgrades, before morning.

reboot role

CI & Docker schedulesΒΆ

Time

Weekday

Action

Source

/4:00

everyday

Run GitLab Guard. Doesn’t affect backup much.

GitLab Guard pipeline

/4:00

everyday

Run Renovate. Doesn’t affect backup much.

Renovate pipeline

/4:00

everyday

Run Docker Registry garbage collection. Doesn’t affect backup much.

Docker registry pipeline

03:30

everyday

Build Docker Base images (stage 1). After backup is done.

Docker image pipelines

03:45

everyday

Build Docker Base images (stage 2). After stage 1 is done.

Docker image pipelines

04:00

everyday

Run library tests. After new base images.

Python library pipelines

04:30

everyday

Run Docker system garbage collection. After backup, far after new base images.

docker-gc timer docker-gc service

Docker service schedulesΒΆ

Time

Weekday

Action

Source

hourly (+ random 5min)

everyday

Database backups.

Postgres Docker image entrypoint MariaDB Docker image entrypoint

hourly

everyday

Run LDAP backup.

LDAP Docker image entrypoint

04:45

everyday

Run GitLab backup. After CI jobs, before next backup.

GitLab Docker image entrypoint