Test Schedules
A TestSchedule creates a TestBubble at every time of a cron schedule. Regular tests keep the
test-recent readiness check green and produce a continuous record of achieved RPO and estimated RTO.
TestSchedule Specification
| Field | Description |
|---|---|
schedule |
Standard 5-field cron expression, evaluated in UTC. Required. |
template |
The specification of each TestBubble: pathRef, applicationRef or planRef, and optionally cloneSource, holdFor, and maxLifetime. Required. |
retention.keepLast |
Number of newest test runs to keep (default 10). Older runs are deleted. |
retention.keepFor |
Deletes runs older than this duration. |
suspend |
Set to true to stop creating new runs. Running tests are not affected. |
The status shows lastScheduleTime, lastSuccessfulTime, and active (the test currently running).
Scheduling Behavior
- No overlap: A new run is never started while the previous one is still in progress.
- No catch-up: Missed runs, for example, during a hub outage or while suspended, are not made up.
- Archive first: With an archive configured, a run is deleted only once its report is archived.
Example: Weekly Test
The following schedule tests the erp application along fra-a-to-fra-b every Sunday at 03:00 UTC and keeps the
last run:
Weekly TestSchedule
apiVersion: dr.simplyblock.io/v1alpha1
kind: TestSchedule
metadata:
name: erp-weekly
namespace: ramen-ops
spec:
schedule: "0 3 * * 0"
template:
pathRef: fra-a-to-fra-b
applicationRef:
name: erp
retention:
keepLast: 1
List schedules and their runs with the short names tsched and tbub:
Listing schedules and test runs
kubectl -n ramen-ops get tsched
kubectl -n ramen-ops get tbub
To pause a schedule, for example, during planned maintenance:
Suspending a schedule
kubectl -n ramen-ops patch tsched erp-weekly --type merge -p '{"spec":{"suspend":true}}'