SnapshotSchedule
kopiur.home-operations.com / v1alpha1
apiVersion: kopiur.home-operations.com/v1alpha1
kind: SnapshotSchedule
metadata:
name: example
spec object required
Cron schedule that fires `Snapshot` CRs from a `SnapshotPolicy`.
failedJobsHistoryLimit
integer
Maximum number of failed `Snapshot` CRs from this schedule to retain
(default `10`; `0` keeps none).
format:
uint32minimum:
0policyRef object
The single `SnapshotPolicy` this schedule invokes; mutually exclusive with `policySelector`.
name
string required
Name of the referenced `SnapshotPolicy`.
namespace
string
Namespace of the `SnapshotPolicy`; absent = same namespace as the referrer.
policySelector object
Label selector fanning out over `SnapshotPolicy` objects; mutually exclusive with `policyRef`.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
schedule object required
Cron, jitter, timezone, and concurrency for the firing cadence.
concurrencyPolicy
string
How to handle a firing while a prior run is still in flight (default `Forbid`).
enum:
Forbid, Allow, Replace
cron
string required
Cron expression with Jenkins-style `H` substitution.
jitter
string
Deterministic jitter (Go-style duration), derived from `(scheduleUID, slot)`.
runOnCreate
boolean
Whether to fire immediately on create (default `false`).
startingDeadlineSeconds
integer
If a slot is missed by more than this many seconds, skip it instead of firing late.
format:
int64
suspend
boolean
Skip future firings while true.
timezone
string
IANA timezone the cron is evaluated in; absent uses the controller's default.
status object
Observed state of a `SnapshotSchedule`: pinned firing slots and failure run.
conditions []object
Standard Kubernetes conditions surfacing schedule health.
lastTransitionTime
string required
lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format:
date-time
message
string required
message is a human readable message indicating details about the transition. This may be an empty string.
observedGeneration
integer
observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
format:
int64
reason
string required
reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
status
string required
status of the condition, one of True, False, Unknown.
type
string required
type of condition in CamelCase or in foo.example.com/CamelCase.
consecutiveFailures
integer
Count of back-to-back failed runs; resets on success.
format:
int64lastSchedule object
Most recent firing (cron + jitter, pinned).
at
string
The RFC3339 instant this slot fired (or is scheduled to); also accepts the `scheduledAt` alias.
snapshotRef object
The `Snapshot` CR this slot produced, when one was created.
name
string required
The `Snapshot`'s `metadata.name` (same namespace as the schedule).
timezone
string
The IANA timezone the cron was evaluated in when this slot was pinned
(`nextSchedule` only). Recorded so the controller can detect an
effective-timezone change — a `spec.schedule.timezone` edit or a change to
the target repository's `scheduleDefaults.timezone` — and invalidate the
pinned wall-clock slot, recomputing it in the new zone. Absent on legacy
pins written before this field existed (treated as "unchanged").
lastSuccessfulSchedule object
The most recent firing whose `Snapshot` succeeded.
at
string
The RFC3339 instant this slot fired (or is scheduled to); also accepts the `scheduledAt` alias.
snapshotRef object
The `Snapshot` CR this slot produced, when one was created.
name
string required
The `Snapshot`'s `metadata.name` (same namespace as the schedule).
timezone
string
The IANA timezone the cron was evaluated in when this slot was pinned
(`nextSchedule` only). Recorded so the controller can detect an
effective-timezone change — a `spec.schedule.timezone` edit or a change to
the target repository's `scheduleDefaults.timezone` — and invalidate the
pinned wall-clock slot, recomputing it in the new zone. Absent on legacy
pins written before this field existed (treated as "unchanged").
nextSchedule object
The next firing slot the controller has computed (cron + jitter, pinned).
at
string
The RFC3339 instant this slot fired (or is scheduled to); also accepts the `scheduledAt` alias.
snapshotRef object
The `Snapshot` CR this slot produced, when one was created.
name
string required
The `Snapshot`'s `metadata.name` (same namespace as the schedule).
timezone
string
The IANA timezone the cron was evaluated in when this slot was pinned
(`nextSchedule` only). Recorded so the controller can detect an
effective-timezone change — a `spec.schedule.timezone` edit or a change to
the target repository's `scheduleDefaults.timezone` — and invalidate the
pinned wall-clock slot, recomputing it in the new zone. Absent on legacy
pins written before this field existed (treated as "unchanged").
observedGeneration
integer
The `metadata.generation` this status reflects, for staleness detection.
format:
int64No matches. Try .spec.failedJobsHistoryLimit for an exact path