Kind
SnapshotSchedule
Group
kopiur.home-operations.com
Version
v1alpha1
apiVersion: kopiur.home-operations.com/v1alpha1 kind: SnapshotSchedule metadata: name: example
Tip: use .spec.failedJobsHistoryLimit for path-only search
View raw schema
spec object required
Cron + `policyRef`. One source of `Snapshot` CRs; pausing it doesn't affect in-flight or completed runs. ADR §3.5.
failedJobsHistoryLimit integer
Bounds *failed* `Snapshot` CRs from this schedule. Successful retention is GFS-driven on `SnapshotPolicy.spec.retention` — there is deliberately NO `successfulJobsHistoryLimit` (ADR-0003 §4.4, ADR-0001 §4.4).
format: uint32
minimum: 0
policyRef object
The single `SnapshotPolicy` (recipe) this schedule invokes; resolved in the schedule's own namespace. ADR §3.5 separates recipe from schedule. **Mutually exclusive** with `policySelector` — exactly one is required (webhook-enforced, ADR-0005 §10). Optional at the type level so `policySelector` can be used instead.
name string required
Name of the referenced `SnapshotPolicy`.
namespace string
Namespace of the `SnapshotPolicy`; absent = same namespace as the referrer.
policySelector object
Fan-out form (ADR-0005 §10): a label selector over `SnapshotPolicy` objects in the schedule's namespace. Each matching policy gets a `Snapshot` per firing ("back up everything tagged `tier=critical` nightly" in one object). **Mutually exclusive** with `policyRef`. Mirrors the `pvcSelector` pattern.
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. ADR §3.5.
concurrencyPolicy string
How to handle a firing while a prior run is still in flight. ADR §4.1. Carries a real OpenAPI `default: Forbid` (ADR-0005 §1) — unconditional, so it materializes into the stored object / `kubectl explain`.
enum: Forbid, Allow, Replace
cron string required
Cron expression with Jenkins-style `H` substitution. ADR §4.1 (G4).
jitter string
Deterministic jitter (Go-style duration), derived from `(scheduleUID, slot)`. ADR §4.1.
runOnCreate boolean
GitOps-friendly default: do NOT fire immediately on create. ADR §4.1 (G3). Carries a real OpenAPI `default: false` (ADR-0005 §1) so it materializes into the stored object / `kubectl explain` and GitOps stops diff-thrashing. NOT `skip_serializing_if`-elided, so the materialized value round-trips.
startingDeadlineSeconds integer
If a slot is missed by more than this many seconds (e.g. operator was down), skip it instead of firing late. ADR §4.1.
format: int64
suspend boolean
Skip future firings while true. ADR §5.9.
timezone string
IANA timezone the cron is evaluated in (e.g. `America/Los_Angeles`). Absent means the controller's configured default. ADR §4.1.
status object
Observed state of a `SnapshotSchedule`: pinned firing slots and failure run. ADR §3.5.
conditions []object
Standard Kubernetes conditions surfacing schedule health. ADR §5 status conventions.
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. Drives alerting.
format: int64
lastSchedule object
Most recent firing (cron + jitter, pinned). ADR §3.5.
at string
The RFC3339 instant this slot fired (or is scheduled to). Accepts the `scheduledAt` alias on the wire (see the struct docs) but always serializes back as `at`.
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).
lastSuccessfulSchedule object
The most recent firing whose `Snapshot` succeeded. ADR §3.5.
at string
The RFC3339 instant this slot fired (or is scheduled to). Accepts the `scheduledAt` alias on the wire (see the struct docs) but always serializes back as `at`.
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).
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). Accepts the `scheduledAt` alias on the wire (see the struct docs) but always serializes back as `at`.
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).
observedGeneration integer
The `metadata.generation` this status reflects, for staleness detection.
format: int64

No matches. Try .spec.failedJobsHistoryLimit for an exact path

Copied!