Snapshot
kopiur.home-operations.com / v1alpha1
apiVersion: kopiur.home-operations.com/v1alpha1
kind: Snapshot
metadata:
name: example
spec object required
A single kopia snapshot represented as a Kubernetes object.
deletionPolicy
string
Lifecycle of the underlying kopia snapshot when its `Snapshot` CR is deleted.
Produced backups default to `Delete`; discovered snapshots are forced to `Retain`.
enum:
Delete, Retain, Orphan
description
string
Free-form text recorded on the kopia snapshot manifest
(`snapshot create --description`). Per-invocation by nature —
scheduled/discovered `Snapshot`s never set this (no templated
descriptions).
maxLength:
1024failurePolicy object
Mover Job retry and deadline limits for this run.
activeDeadlineSeconds
integer
Mover `Job.spec.activeDeadlineSeconds` — wall-clock cap after which a running run is killed.
format:
int64
backoffLimit
integer
Mover `Job.spec.backoffLimit` — retries before a failed run is marked failed.
format:
int32
podStartupDeadlineSeconds
integer
Seconds a non-starting (wedged) mover pod may sit before the run is failed; default 300s.
format:
int64
pin
boolean
Exempt this snapshot from GFS retention.
policyRef object
The `SnapshotPolicy` recipe to run; absent for `discovered` backups.
name
string required
Name of the referenced `SnapshotPolicy`.
namespace
string
Namespace of the `SnapshotPolicy`; absent = same namespace as the referrer.
tags
object
Arbitrary kopia snapshot tags (e.g. `reason: scheduled-nightly`).
status object
Observed state of a [`Snapshot`].
conditions []object
Standard Kubernetes conditions (e.g. `SourcesQuiesced`, `SnapshotCreated`).
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.
failure object
Structured terminal-failure detail (kopia error class, stderr tail, retry hint).
exitCode
integer
The process exit code, if one was reported.
format:
int32
kopiaErrorClass
string required
kopia error class (e.g. `RepositoryUnavailable`, `AuthFailure`).
message
string required
A short human-readable message: what failed, why, and how to fix it.
retryRecommended
boolean required
Whether retrying the same operation unchanged could succeed.
stderrTail
string
The last lines of kopia's stderr, if any were captured (bounded by
[`MAX_LOG_TAIL_BYTES`]).
hooks object
Hook-execution bookkeeping so each hook list runs exactly once per Snapshot.
postCompletedAt
string
When the `afterSnapshot` list completed (RFC3339); absent until it has.
preCompletedAt
string
When the `beforeSnapshot` list completed (RFC3339); absent until it has.
job object
The mover Job backing this run; absent for discovered.
attempts
integer
Number of attempts so far (bounded by `failurePolicy.backoffLimit`).
format:
int32
name
string
Name of the mover `Job`.
logTail
string
The last lines of the run's output, written by the mover at the terminal transition.
observedGeneration
integer
`metadata.generation` last reconciled, for staleness detection.
format:
int64
origin
string
How a `Snapshot` came to exist. Canonical value mirrored from the
`kopiur.home-operations.com/origin` label. Origin drives the deletion-policy
default: `discovered` backups are forced to `Retain` because the operator did
not create those snapshots.
enum:
scheduled, manual, discovered
phase
string
Lifecycle phase of a `Snapshot`.
enum:
Pending, Running, Succeeded, Failed, Deleting, Discovered
pinned
boolean
The observed kopia-side pin state: `Some(true)` if pinned, `Some(false)` if unpinned, `None` before any pin reconcile.
preflightSince
string
RFC 3339 timestamp of the first reconcile where the repository was `Ready`
but a `spec.preflight` check was failing. The one-shot anchor for the
preflight `timeout` deadline (so the budget covers preflight only, not the
earlier repository-not-Ready wait). Cleared once every preflight check passes,
so a later failing episode gets a fresh budget rather than a stale anchor.
resolved object
Frozen recipe values at run time (scheduled/manual).
repository object
The repository this run targeted, frozen at run time.
kind
string
Which repository CRD this points at; defaults to [`RepositoryKind::Repository`].
enum:
Repository, ClusterRepository
name
string required
Name of the referenced `Repository`/`ClusterRepository`.
namespace
string
Cross-namespace `Repository` reference; ignored/forbidden for `ClusterRepository`.
sources []object
The concrete PVCs + source paths backed up this run.
pvc
string
`namespace/name` of the PVC, as kopia sees it.
sourcePath
string
The source path kopia recorded for this PVC.
snapshot object
The kopia artifact this CR represents.
identity object required
The `username@hostname:path` identity recorded for this snapshot.
hostname
string required
The final `hostname` kopia records, fixed at admission.
sourcePath
string
The resolved snapshot source path, when applicable (`username@hostname:path`).
username
string required
The final `username` kopia records, fixed at admission.
kopiaSnapshotID
string required
kopia's snapshot ID — the handle the finalizer uses to delete content.
staged object
The CSI staging objects the run created for `copyMethod: Snapshot`/`Clone`.
copyMethod
string
The resolved capture method (`Snapshot` or `Clone`) that produced this stage.
pvcName
string
Name of the staged `PersistentVolumeClaim` the mover mounts in place of the live source PVC.
ready
boolean
`true` once the stage is ready for the mover.
stagingTimeoutSeconds
integer
The resolved `spec.staging.timeout` (seconds) pinned when the stage was
stamped, so the running-Job staged-PVC bind watchdog never re-resolves a
policy that may have been edited or deleted mid-run. `0` = wait
indefinitely.
format:
int64
storageClassName
string
StorageClass of the staged PVC — `spec.staging.storageClassName` when set,
else the source PVC's class. Pinned for observability (e.g. confirming a
CephFS shallow-clone class actually took effect).
volumeSnapshotName
string
Name of the `VolumeSnapshot` created from the source PVC (`copyMethod: Snapshot` only).
stats object
Byte/file counts parsed from kopia's JSON output.
bytesNew
integer
Bytes newly uploaded this run (after dedup/compression).
format:
int64
filesFailed
integer
Count of source entries kopia could not read and excluded, making the snapshot incomplete.
format:
int64
filesModified
integer
Count of files changed since the previous snapshot.
format:
int64
filesNew
integer
Count of files new since the previous snapshot.
format:
int64
filesUnchanged
integer
Count of files unchanged since the previous snapshot.
format:
int64
sizeBytes
integer
Total logical size of the snapshot in bytes.
format:
int64timing object
Start/end/duration of the snapshot run.
durationSeconds
integer
Wall-clock duration in seconds.
format:
int64
endTime
string
RFC3339 end time of the run.
startTime
string
RFC3339 start time of the run.
No matches. Try .spec.deletionPolicy for an exact path