crunchy-scheduler
The Crunchy Scheduler container provides a cronlike microservice for automating
pgBaseBackup and pgBackRest backups within a single namespace. The scheduler
watches Kubernetes for config maps with the label crunchy-scheduler=true
.
If found the scheduler parses a JSON object contained in the config map and
converts it into an scheduled task.
Packages
The Crunchy Scheduler Docker image contains the following packages:
- CentOS7 - publicly available
- RHEL7 - customers only
- Scheduler App
Environment Variables
Required
Name | Default | Description |
---|---|---|
NAMESPACE | None | The namespace the microservice should watch. Crunchy Scheduler only works in a single namespace. |
TIMEOUT | 300 | The time (in seconds) the scheduler should wait before timing out on a backup job. |
Optional
Name | Default | Description |
---|---|---|
CRUNCHY_DEBUG | FALSE | Set this to true to enable debugging in logs. Note: this mode can reveal secrets in logs. |
Permissions
Crunchy Scheduler queries Kubernetes to discover schedules and perform scheduled tasks (either creating a job or running commands against a PostgreSQL container). Due to the integration with Kubernetes, Crunchy Scheduler requires a service account with the following permissions:
- Role
- ConfigMaps:
get
,list
,watch
- Deployments:
get
,list
,watch
- Jobs:
get
,list
,watch
,create,
delete` - Pods:
get
,list
,watch
- Pods/Exec:
create
- Secrets:
get
,list
,watch
- ConfigMaps:
Timezone
Crunchy Scheduler uses the UTC
timezone for all schedules.
Schedule Expression Format
Schedules are expressed using the following rules:
Field name | Mandatory? | Allowed values | Allowed special characters
---------- | ---------- | -------------- | --------------------------
Seconds | Yes | 0-59 | * / , -
Minutes | Yes | 0-59 | * / , -
Hours | Yes | 0-23 | * / , -
Day of month | Yes | 1-31 | * / , - ?
Month | Yes | 1-12 or JAN-DEC | * / , -
Day of week | Yes | 0-6 or SUN-SAT | * / , - ?