Docs/Reference/Scheduler

Scheduler Reference

Complete reference for annotation-based scheduling.


Schedule Annotations

AnnotationScopeDescription
reel.io/schedulePod, NamespaceMulti-line schedule definition
reel.io/excludePodSet to "true" to opt-out of scheduling

S3 Annotations

Configure default S3 settings for all export commands. Pod annotations override namespace annotations.

AnnotationScopeDescription
reel.io/s3-bucketPod, NamespaceS3 bucket name for exports
reel.io/s3-regionPod, NamespaceAWS region (e.g., us-east-1)
reel.io/s3-secretPod, NamespaceK8s secret name with AWS credentials

Schedule Format

annotations:
reel.io/schedule: |
<cron> | <command>
next | <command>

next runs after previous command completes.

Cron Patterns

PatternDescription
*/15 * * * *Every 15 minutes
0 * * * *Every hour
0 */6 * * *Every 6 hours
0 2 * * *Daily at 2 AM
0 0 * * 0Weekly (Sunday midnight)
0 0 1 * *Monthly (1st at midnight)

Supported Commands

# Layer
create layer
delete layer --keep-last <n>
export layer
# Checkpoint
create checkpoint
delete checkpoint --keep-last <n>
# Security
export sbom
export cbom
export malware
# Forensics
export volatile
export memory

Export commands use S3 annotations for destination. Override with --s3-bucket flag.

Complete Example

Pod with S3 configuration and scheduled security scans:

apiVersion: v1
kind: Pod
metadata:
name: web-app
namespace: production
annotations:
# S3 defaults for all exports
reel.io/s3-bucket: company-forensics
reel.io/s3-region: us-east-1
reel.io/s3-secret: aws-s3-credentials
# Schedule
reel.io/schedule: |
0 * * * * | create layer
next | delete layer --keep-last 24
0 2 * * * | export sbom
next | export cbom
next | export malware
spec:
containers:
- name: app
image: nginx:latest

Configuration Priority

Settings can be defined at multiple levels. Higher priority overrides lower:

Schedule Priority

PrioritySourceBehavior
1 (highest)Pod annotationCompletely replaces namespace schedule
2Namespace annotationApplies to all pods without their own schedule

Schedules are not merged. A pod with its own reel.io/schedule annotation will not inherit anything from the namespace.

S3 Configuration Priority

PrioritySourceExample
1 (highest)Command flags--s3-bucket override-bucket
2Pod annotationreel.io/s3-bucket: pod-bucket
3 (lowest)Namespace annotationreel.io/s3-bucket: ns-bucket

S3 settings are resolved independently. A pod can inherit s3-bucket from namespace while overriding s3-region.

Per-Command Overrides

Individual commands in a schedule can override S3 settings:

annotations:
reel.io/s3-bucket: default-bucket
reel.io/schedule: |
# Uses default-bucket
0 2 * * * | export sbom
# Override for this command only
0 3 * * * | export checkpoint --s3-bucket special-bucket

View Schedules

reel get schedule
reel get schedule -A
reel get schedule my-app -n production

See S3 Exports for credential setup and Scheduling Tutorial for more examples.