607 lines
31 KiB
YAML
607 lines
31 KiB
YAML
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.16.5
|
|
labels:
|
|
component: velero
|
|
name: schedules.velero.io
|
|
spec:
|
|
group: velero.io
|
|
names:
|
|
kind: Schedule
|
|
listKind: ScheduleList
|
|
plural: schedules
|
|
singular: schedule
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- description: Status of the schedule
|
|
jsonPath: .status.phase
|
|
name: Status
|
|
type: string
|
|
- description: A Cron expression defining when to run the Backup
|
|
jsonPath: .spec.schedule
|
|
name: Schedule
|
|
type: string
|
|
- description: The last time a Backup was run for this schedule
|
|
jsonPath: .status.lastBackup
|
|
name: LastBackup
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
- jsonPath: .spec.paused
|
|
name: Paused
|
|
type: boolean
|
|
name: v1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
Schedule is a Velero resource that represents a pre-scheduled or
|
|
periodic Backup that should be run.
|
|
properties:
|
|
apiVersion:
|
|
description: |-
|
|
APIVersion defines the versioned schema of this representation of an object.
|
|
Servers should convert recognized schemas to the latest internal value, and
|
|
may reject unrecognized values.
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
|
type: string
|
|
kind:
|
|
description: |-
|
|
Kind is a string value representing the REST resource this object represents.
|
|
Servers may infer this from the endpoint the client submits requests to.
|
|
Cannot be updated.
|
|
In CamelCase.
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
spec:
|
|
description: ScheduleSpec defines the specification for a Velero schedule
|
|
properties:
|
|
paused:
|
|
description: Paused specifies whether the schedule is paused or
|
|
not
|
|
type: boolean
|
|
schedule:
|
|
description: |-
|
|
Schedule is a Cron expression defining when to run
|
|
the Backup.
|
|
type: string
|
|
skipImmediately:
|
|
description: |-
|
|
SkipImmediately specifies whether to skip backup if schedule is due immediately from `schedule.status.lastBackup` timestamp when schedule is unpaused or if schedule is new.
|
|
If true, backup will be skipped immediately when schedule is unpaused if it is due based on .Status.LastBackupTimestamp or schedule is new, and will run at next schedule time.
|
|
If false, backup will not be skipped immediately when schedule is unpaused, but will run at next schedule time.
|
|
If empty, will follow server configuration (default: false).
|
|
type: boolean
|
|
template:
|
|
description: |-
|
|
Template is the definition of the Backup to be run
|
|
on the provided schedule
|
|
properties:
|
|
csiSnapshotTimeout:
|
|
description: |-
|
|
CSISnapshotTimeout specifies the time used to wait for CSI VolumeSnapshot status turns to
|
|
ReadyToUse during creation, before returning error as timeout.
|
|
The default value is 10 minute.
|
|
type: string
|
|
datamover:
|
|
description: |-
|
|
DataMover specifies the data mover to be used by the backup.
|
|
If DataMover is "" or "velero", the built-in data mover will be used.
|
|
type: string
|
|
defaultVolumesToFsBackup:
|
|
description: |-
|
|
DefaultVolumesToFsBackup specifies whether pod volume file system backup should be used
|
|
for all volumes by default.
|
|
nullable: true
|
|
type: boolean
|
|
defaultVolumesToRestic:
|
|
description: |-
|
|
DefaultVolumesToRestic specifies whether restic should be used to take a
|
|
backup of all pod volumes by default.
|
|
|
|
Deprecated: this field is no longer used and will be removed entirely in future. Use DefaultVolumesToFsBackup instead.
|
|
nullable: true
|
|
type: boolean
|
|
excludedClusterScopedResources:
|
|
description: |-
|
|
ExcludedClusterScopedResources is a slice of cluster-scoped
|
|
resource type names to exclude from the backup.
|
|
If set to "*", all cluster-scoped resource types are excluded.
|
|
The default value is empty.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
excludedNamespaceScopedResources:
|
|
description: |-
|
|
ExcludedNamespaceScopedResources is a slice of namespace-scoped
|
|
resource type names to exclude from the backup.
|
|
If set to "*", all namespace-scoped resource types are excluded.
|
|
The default value is empty.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
excludedNamespaces:
|
|
description: |-
|
|
ExcludedNamespaces contains a list of namespaces that are not
|
|
included in the backup.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
excludedResources:
|
|
description: |-
|
|
ExcludedResources is a slice of resource names that are not
|
|
included in the backup.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
hooks:
|
|
description: Hooks represent custom behaviors that should be
|
|
executed at different phases of the backup.
|
|
properties:
|
|
resources:
|
|
description: Resources are hooks that should be executed
|
|
when backing up individual instances of a resource.
|
|
items:
|
|
description: |-
|
|
BackupResourceHookSpec defines one or more BackupResourceHooks that should be executed based on
|
|
the rules defined for namespaces, resources, and label selector.
|
|
properties:
|
|
excludedNamespaces:
|
|
description: ExcludedNamespaces specifies the namespaces
|
|
to which this hook spec does not apply.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
excludedResources:
|
|
description: ExcludedResources specifies the resources
|
|
to which this hook spec does not apply.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
includedNamespaces:
|
|
description: |-
|
|
IncludedNamespaces specifies the namespaces to which this hook spec applies. If empty, it applies
|
|
to all namespaces.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
includedResources:
|
|
description: |-
|
|
IncludedResources specifies the resources to which this hook spec applies. If empty, it applies
|
|
to all resources.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
labelSelector:
|
|
description: LabelSelector, if specified, filters
|
|
the resources to which this hook spec applies.
|
|
nullable: true
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label
|
|
selector requirements. The requirements are
|
|
ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the
|
|
selector applies to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
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.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
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.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
name:
|
|
description: Name is the name of this hook.
|
|
type: string
|
|
post:
|
|
description: |-
|
|
PostHooks is a list of BackupResourceHooks to execute after storing the item in the backup.
|
|
These are executed after all "additional items" from item actions are processed.
|
|
items:
|
|
description: BackupResourceHook defines a hook for
|
|
a resource.
|
|
properties:
|
|
exec:
|
|
description: Exec defines an exec hook.
|
|
properties:
|
|
command:
|
|
description: Command is the command and
|
|
arguments to execute.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
container:
|
|
description: |-
|
|
Container is the container in the pod where the command should be executed. If not specified,
|
|
the pod's first container is used.
|
|
type: string
|
|
onError:
|
|
description: OnError specifies how Velero
|
|
should behave if it encounters an error
|
|
executing this hook.
|
|
enum:
|
|
- Continue
|
|
- Fail
|
|
type: string
|
|
timeout:
|
|
description: |-
|
|
Timeout defines the maximum amount of time Velero should wait for the hook to complete before
|
|
considering the execution a failure.
|
|
type: string
|
|
required:
|
|
- command
|
|
type: object
|
|
required:
|
|
- exec
|
|
type: object
|
|
type: array
|
|
pre:
|
|
description: |-
|
|
PreHooks is a list of BackupResourceHooks to execute prior to storing the item in the backup.
|
|
These are executed before any "additional items" from item actions are processed.
|
|
items:
|
|
description: BackupResourceHook defines a hook for
|
|
a resource.
|
|
properties:
|
|
exec:
|
|
description: Exec defines an exec hook.
|
|
properties:
|
|
command:
|
|
description: Command is the command and
|
|
arguments to execute.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
container:
|
|
description: |-
|
|
Container is the container in the pod where the command should be executed. If not specified,
|
|
the pod's first container is used.
|
|
type: string
|
|
onError:
|
|
description: OnError specifies how Velero
|
|
should behave if it encounters an error
|
|
executing this hook.
|
|
enum:
|
|
- Continue
|
|
- Fail
|
|
type: string
|
|
timeout:
|
|
description: |-
|
|
Timeout defines the maximum amount of time Velero should wait for the hook to complete before
|
|
considering the execution a failure.
|
|
type: string
|
|
required:
|
|
- command
|
|
type: object
|
|
required:
|
|
- exec
|
|
type: object
|
|
type: array
|
|
required:
|
|
- name
|
|
type: object
|
|
nullable: true
|
|
type: array
|
|
type: object
|
|
includeClusterResources:
|
|
description: |-
|
|
IncludeClusterResources specifies whether cluster-scoped resources
|
|
should be included for consideration in the backup.
|
|
nullable: true
|
|
type: boolean
|
|
includedClusterScopedResources:
|
|
description: |-
|
|
IncludedClusterScopedResources is a slice of cluster-scoped
|
|
resource type names to include in the backup.
|
|
If set to "*", all cluster-scoped resource types are included.
|
|
The default value is empty, which means only related
|
|
cluster-scoped resources are included.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
includedNamespaceScopedResources:
|
|
description: |-
|
|
IncludedNamespaceScopedResources is a slice of namespace-scoped
|
|
resource type names to include in the backup.
|
|
The default value is "*".
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
includedNamespaces:
|
|
description: |-
|
|
IncludedNamespaces is a slice of namespace names to include objects
|
|
from. If empty, all namespaces are included.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
includedResources:
|
|
description: |-
|
|
IncludedResources is a slice of resource names to include
|
|
in the backup. If empty, all resources are included.
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
itemOperationTimeout:
|
|
description: |-
|
|
ItemOperationTimeout specifies the time used to wait for asynchronous BackupItemAction operations
|
|
The default value is 4 hour.
|
|
type: string
|
|
labelSelector:
|
|
description: |-
|
|
LabelSelector is a metav1.LabelSelector to filter with
|
|
when adding individual objects to the backup. If empty
|
|
or nil, all objects are included. Optional.
|
|
nullable: true
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector
|
|
requirements. The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector
|
|
applies to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
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.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
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.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
metadata:
|
|
properties:
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
orLabelSelectors:
|
|
description: |-
|
|
OrLabelSelectors is list of metav1.LabelSelector to filter with
|
|
when adding individual objects to the backup. If multiple provided
|
|
they will be joined by the OR operator. LabelSelector as well as
|
|
OrLabelSelectors cannot co-exist in backup request, only one of them
|
|
can be used.
|
|
items:
|
|
description: |-
|
|
A label selector is a label query over a set of resources. The result of matchLabels and
|
|
matchExpressions are ANDed. An empty label selector matches all objects. A null
|
|
label selector matches no objects.
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector
|
|
requirements. The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector
|
|
applies to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
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.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
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.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
nullable: true
|
|
type: array
|
|
orderedResources:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
OrderedResources specifies the backup order of resources of specific Kind.
|
|
The map key is the resource name and value is a list of object names separated by commas.
|
|
Each resource name has format "namespace/objectname". For cluster resources, simply use "objectname".
|
|
nullable: true
|
|
type: object
|
|
resourcePolicy:
|
|
description: ResourcePolicy specifies the referenced resource
|
|
policies that backup should follow
|
|
properties:
|
|
apiGroup:
|
|
description: |-
|
|
APIGroup is the group for the resource being referenced.
|
|
If APIGroup is not specified, the specified Kind must be in the core API group.
|
|
For any other third-party types, APIGroup is required.
|
|
type: string
|
|
kind:
|
|
description: Kind is the type of resource being referenced
|
|
type: string
|
|
name:
|
|
description: Name is the name of resource being referenced
|
|
type: string
|
|
required:
|
|
- kind
|
|
- name
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
snapshotMoveData:
|
|
description: SnapshotMoveData specifies whether snapshot data
|
|
should be moved
|
|
nullable: true
|
|
type: boolean
|
|
snapshotVolumes:
|
|
description: |-
|
|
SnapshotVolumes specifies whether to take snapshots
|
|
of any PV's referenced in the set of objects included
|
|
in the Backup.
|
|
nullable: true
|
|
type: boolean
|
|
storageLocation:
|
|
description: StorageLocation is a string containing the name
|
|
of a BackupStorageLocation where the backup should be stored.
|
|
type: string
|
|
ttl:
|
|
description: |-
|
|
TTL is a time.Duration-parseable string describing how long
|
|
the Backup should be retained for.
|
|
type: string
|
|
uploaderConfig:
|
|
description: UploaderConfig specifies the configuration for
|
|
the uploader.
|
|
nullable: true
|
|
properties:
|
|
parallelFilesUpload:
|
|
description: ParallelFilesUpload is the number of files
|
|
parallel uploads to perform when using the uploader.
|
|
type: integer
|
|
type: object
|
|
volumeSnapshotLocations:
|
|
description: VolumeSnapshotLocations is a list containing names
|
|
of VolumeSnapshotLocations associated with this backup.
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
useOwnerReferencesInBackup:
|
|
description: |-
|
|
UseOwnerReferencesBackup specifies whether to use
|
|
OwnerReferences on backups created by this Schedule.
|
|
nullable: true
|
|
type: boolean
|
|
required:
|
|
- schedule
|
|
- template
|
|
type: object
|
|
status:
|
|
description: ScheduleStatus captures the current state of a Velero schedule
|
|
properties:
|
|
lastBackup:
|
|
description: |-
|
|
LastBackup is the last time a Backup was run for this
|
|
Schedule schedule
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
lastSkipped:
|
|
description: LastSkipped is the last time a Schedule was skipped
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
phase:
|
|
description: Phase is the current phase of the Schedule
|
|
enum:
|
|
- New
|
|
- Enabled
|
|
- FailedValidation
|
|
type: string
|
|
validationErrors:
|
|
description: |-
|
|
ValidationErrors is a slice of all validation errors (if
|
|
applicable)
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources: {}
|