Backup API reference

Detailed documentation on the Backup API

Packages:

backup.kurator.dev/v1alpha1

Package v1alpha1 contains API Schema definitions for the fleet v1alpha1 API group

Resource Types:

Backup

Backup is the schema for the Backup’s API.

Field Description
apiVersion
string
backup.kurator.dev/v1alpha1
kind
string
Backup
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
BackupSpec
schedule
string
(Optional)

Schedule defines when to run the Backup using a Cron expression. A cron expression is a format used to specify the execution time of recurring tasks, consisting of multiple fields representing different time units. ┌───────────── minute (0 - 59) │ ┌───────────── hour (0 - 23) │ │ ┌───────────── day of the month (1 - 31) │ │ │ ┌───────────── month (1 - 12) │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday; │ │ │ │ │ 7 is also Sunday on some systems) │ │ │ │ │ │ │ │ │ │


For example, “30 * * * *” represents execution at the 30th minute of every hour, and “10 10,14 * * *” represents execution at 10:10 AM and 2:10 PM every day. If not set, the backup will be executed only once.

destination
Destination

Destination indicates the clusters where backups should be performed.

policy
BackupPolicy
(Optional)

Policy are the rules defining how backups should be performed.

status
BackupStatus

BackupDetails

(Appears on: BackupStatus, MigrateStatus)

Field Description
clusterName
string
(Optional)

ClusterName is the Name of the cluster where the backup is being performed.

clusterKind
string
(Optional)

ClusterKind is the kind of ClusterName recorded in Kurator.

backupNameInCluster
string
(Optional)

BackupNameInCluster is the name of the backup being performed within this cluster. This BackupNameInCluster is unique in Storage.

backupStatusInCluster
github.com/vmware-tanzu/velero/pkg/apis/velero/v1.BackupStatus
(Optional)

BackupStatusInCluster is the current status of the backup performed within this cluster.

BackupPolicy

(Appears on: BackupSpec)

Note: partly copied from https://github.com/vmware-tanzu/velero/blob/v1.11.1/pkg/apis/velero/v1/backup_types.go BackupPolicy defines the specification for a backup policy.

Field Description
resourceFilter
ResourceFilter
(Optional)

ResourceFilter specifies which resources should be included in the backup. It acts as a selective criterion to determine which resources are relevant for backup. If not set, the backup process will consider all resources. This filter helps in optimizing the backup process by excluding unnecessary data.

ttl
Kubernetes meta/v1.Duration
(Optional)

TTL is a time.Duration-parseable string describing how long the Backup should be retained for.

orderedResources
map[string]string
(Optional)

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”. For example, if you have a specific order for pods, such as “pod1, pod2, pod3” with all belonging to the “ns1” namespace, and a specific order for persistentvolumes, such as “pv4, pv8”, you can use the orderedResources field in YAML format as shown below:

orderedResources:
pods: "ns1/pod1, ns1/pod2, ns1/pod3"
persistentvolumes: "pv4, pv8"

BackupSpec

(Appears on: Backup)

Field Description
schedule
string
(Optional)

Schedule defines when to run the Backup using a Cron expression. A cron expression is a format used to specify the execution time of recurring tasks, consisting of multiple fields representing different time units. ┌───────────── minute (0 - 59) │ ┌───────────── hour (0 - 23) │ │ ┌───────────── day of the month (1 - 31) │ │ │ ┌───────────── month (1 - 12) │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday; │ │ │ │ │ 7 is also Sunday on some systems) │ │ │ │ │ │ │ │ │ │


For example, “30 * * * *” represents execution at the 30th minute of every hour, and “10 10,14 * * *” represents execution at 10:10 AM and 2:10 PM every day. If not set, the backup will be executed only once.

destination
Destination

Destination indicates the clusters where backups should be performed.

policy
BackupPolicy
(Optional)

Policy are the rules defining how backups should be performed.

BackupStatus

(Appears on: Backup)

Field Description
conditions
Cluster API /v1beta1.Conditions
(Optional)

Conditions represent the current state of the backup operation.

phase
string
(Optional)

Phase represents the current phase of the backup operation.

backupDetails
[]BackupDetails
(Optional)

Details provides a detailed status for each backup in each cluster.

ClusterSelector

Field Description
matchLabels
map[string]string
(Optional)

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”. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

Destination

(Appears on: BackupSpec, MigrateSpec, RestoreSpec)

Destination defines a target set of clusters, either through a fleet or by specifying them directly.

Field Description
fleet
string

Fleet represents the name of a fleet which determines a set of target clusters within the namespace. This field is required to identify the context for cluster selection.

clusters
[]Kubernetes core/v1.ObjectReference
(Optional)

Clusters allows users to specify a subset of clusters within the selected fleet for targeted operations. If not set, it implies that the operation is targeted at all clusters within the specified fleet.

Migrate

Migrate is the schema for the Migrate’s API.

Field Description
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
MigrateSpec
sourceCluster
Destination

SourceCluster represents the source cluster for migration. The user needs to ensure that SourceCluster points to only ONE cluster. Because the current migration only supports migrating from one SourceCluster to one or more TargetCluster.

targetCluster
Destination

TargetClusters represents the target clusters for migration.

policy
MigratePolicy

Policy defines the rules for the migration.

status
MigrateStatus

MigratePhase (string alias)

(Appears on: MigrateStatus)

MigratePhase is a string representation of the lifecycle phase of a Migrate instance

MigratePolicy

(Appears on: MigrateSpec)

Field Description
resourceFilter
ResourceFilter
(Optional)

ResourceFilter specifies the resources to be included in the migration. If not set, all resources in source cluster will be migrated.

orderedResources
map[string]string
(Optional)

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”. For example, if you have a specific order for pods, such as “pod1, pod2, pod3” with all belonging to the “ns1” namespace, and a specific order for persistentvolumes, such as “pv4, pv8”, you can use the orderedResources field in YAML format as shown below:

orderedResources:
pods: "ns1/pod1, ns1/pod2, ns1/pod3"
persistentvolumes: "pv4, pv8"
namespaceMapping
map[string]string
(Optional)

NamespaceMapping is a map of source namespace names to target namespace names to migrate into. Any source namespaces not included in the map will be migrated into namespaces of the same name.

migrateStatus
PreserveStatus
(Optional)

MigrateStatus specifies which resources we should migrate the status field. If nil, no objects are included. Optional.

preserveNodePorts
bool
(Optional)

PreserveNodePorts specifies whether to migrate old nodePorts from source cluster to target cluster.

MigrateSpec

(Appears on: Migrate)

Field Description
sourceCluster
Destination

SourceCluster represents the source cluster for migration. The user needs to ensure that SourceCluster points to only ONE cluster. Because the current migration only supports migrating from one SourceCluster to one or more TargetCluster.

targetCluster
Destination

TargetClusters represents the target clusters for migration.

policy
MigratePolicy

Policy defines the rules for the migration.

MigrateStatus

(Appears on: Migrate)

Field Description
conditions
Cluster API /v1beta1.Conditions
(Optional)

Conditions represent the current state of the migration operation.

phase
MigratePhase
(Optional)

Phase represents the current phase of the migration operation.

sourceClusterStatus
BackupDetails

SourceClusterStatus provides a detailed status for backup in SourceCluster.

targetClusterStatus
[]RestoreDetails

TargetClusterStatus provides a detailed status for each restore in each TargetCluster.

PreserveStatus

(Appears on: MigratePolicy, RestorePolicy)

PreserveStatus specifies which resources we should restore the status field. The logic implemented is that everything in the included list except those items in the excluded list should be included. ‘*’ in the includes list means “include everything”, but it is not valid in the exclude list.

Field Description
includedResources
[]string
(Optional)

IncludedResources determines which resources will have their status restored. By default, if this list is empty, it means the status for ALL resources will be restored. For example: - If you want to restore the status only for deployments and services, set: includedResources: [“deployments”, “services”] - If you leave it empty, the status for all resources will be restored. Note: If a resource is listed in both IncludedResources and ExcludedResources, the exclusion takes precedence.

excludedResources
[]string
(Optional)

ExcludedResources lists out the resources that will NOT have their status restored. By default, if this list is empty, it means the status for NO resources will be excluded from restoration. For instance: - If you want to prevent restoring the status for pods and configmaps, set: excludedResources: [“pods”, “configmaps”] - If you leave it empty, no resources are excluded, and all will have their status restored (unless specified otherwise in IncludedResources). Note: Exclusions listed here take precedence over inclusions. So, if a resource is listed in both, its status will NOT be restored.

ResourceFilter

(Appears on: BackupPolicy, MigratePolicy, RestorePolicy)

Note: partly copied from https://github.com/vmware-tanzu/velero/blob/v1.11.1/pkg/apis/velero/v1/backup_types.go

Field Description
includedNamespaces
[]string
(Optional)

IncludedNamespaces is a list of namespace names to include objects from. If empty, all namespaces are included.

excludedNamespaces
[]string
(Optional)

ExcludedNamespaces contains a list of namespaces that are not included in the backup.

includedResources
[]string
(Optional)

IncludedResources is a slice of API resource names to include in the backup. For example, we can populate this string array with [“deployments”, “configmaps”,“clusterroles”,“storageclasses”], then we will select all resources of type deployments and configmaps. If empty, all API resources are included. Cannot work with IncludedClusterScopedResources, ExcludedClusterScopedResources, IncludedNamespaceScopedResources and ExcludedNamespaceScopedResources.

excludedResources
[]string
(Optional)

ExcludedResources is a slice of resource names that are not included in the backup. Cannot work with IncludedClusterScopedResources, ExcludedClusterScopedResources, IncludedNamespaceScopedResources and ExcludedNamespaceScopedResources.

includeClusterResources
bool
(Optional)

IncludeClusterResources specifies whether cluster-scoped resources should be included for consideration in the backup. Cannot work with IncludedClusterScopedResources, ExcludedClusterScopedResources, IncludedNamespaceScopedResources and ExcludedNamespaceScopedResources.

includedClusterScopedResources
[]string
(Optional)

IncludedClusterScopedResources is a slice of cluster-scoped resource type names to include in the backup. For example, we can populate this string array with [“storageclasses”, “clusterroles”], then we will select all resources of type storageclasses and clusterroles, If set to “*”, all cluster-scoped resource types are included. The default value is empty, which means only related cluster-scoped resources are included. Cannot work with IncludedResources, ExcludedResources and IncludeClusterResources.

excludedClusterScopedResources
[]string
(Optional)

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. Cannot work with IncludedResources, ExcludedResources and IncludeClusterResources.

includedNamespaceScopedResources
[]string
(Optional)

IncludedNamespaceScopedResources is a slice of namespace-scoped resource type names to include in the backup. For example, we can populate this string array with [“deployments”, “configmaps”], then we will select all resources of type deployments and configmaps, The default value is “*”. Cannot work with IncludedResources, ExcludedResources and IncludeClusterResources.

excludedNamespaceScopedResources
[]string
(Optional)

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. Cannot work with IncludedResources, ExcludedResources and IncludeClusterResources.

labelSelector
Kubernetes meta/v1.LabelSelector
(Optional)

LabelSelector is a metav1.LabelSelector to filter with when adding individual objects to the backup. If empty or nil, all objects are included. Optional.

orLabelSelectors
[]Kubernetes meta/v1.LabelSelector
(Optional)

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.

Restore

Restore is the schema for the Restore’s API.

Field Description
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
RestoreSpec
backupName
string

BackupName specifies the backup on which this restore operation is based.

destination
Destination
(Optional)

Destination indicates the clusters where restore should be performed. if not set, all the clusters from Backup.spec.destination will perform restore.

policy
RestorePolicy
(Optional)

Policy defines the customization rules for the restore. If null, the backup will be fully restored using default settings.

status
RestoreStatus

RestoreDetails

(Appears on: MigrateStatus, RestoreStatus)

Field Description
clusterName
string
(Optional)

ClusterName is the Name of the cluster where the restore is being performed.

clusterKind
string
(Optional)

ClusterKind is the kind of ClusterName recorded in Kurator.

restoreNameInCluster
string
(Optional)

RestoreNameInCluster is the name of the restore being performed within this cluster. This RestoreNameInCluster is unique in Storage.

restoreStatusInCluster
github.com/vmware-tanzu/velero/pkg/apis/velero/v1.RestoreStatus
(Optional)

RestoreStatusInCluster is the current status of the restore performed within this cluster.

RestorePolicy

(Appears on: RestoreSpec)

Note: partly copied from https://github.com/vmware-tanzu/velero/blob/v1.11.1/pkg/apis/velero/v1/restore_types.go RestorePolicy defines the specification for a Velero restore.

Field Description
resourceFilter
ResourceFilter
(Optional)

ResourceFilter is the filter for the resources to be restored. If not set, all resources from the backup will be restored.

namespaceMapping
map[string]string
(Optional)

NamespaceMapping is a map of source namespace names to target namespace names to restore into. Any source namespaces not included in the map will be restored into namespaces of the same name.

preserveStatus
PreserveStatus
(Optional)

PreserveStatus specifies which resources we should restore the status field. If unset, no status will be restored.

preserveNodePorts
bool
(Optional)

PreserveNodePorts specifies whether to restore old nodePorts from backup. If not specified, default to false.

RestoreSpec

(Appears on: Restore)

Field Description
backupName
string

BackupName specifies the backup on which this restore operation is based.

destination
Destination
(Optional)

Destination indicates the clusters where restore should be performed. if not set, all the clusters from Backup.spec.destination will perform restore.

policy
RestorePolicy
(Optional)

Policy defines the customization rules for the restore. If null, the backup will be fully restored using default settings.

RestoreStatus

(Appears on: Restore)

Field Description
conditions
Cluster API /v1beta1.Conditions
(Optional)

Conditions represent the current state of the restore operation.

phase
string
(Optional)

Phase represents the current phase of the restore operation.

restoreDetails
[]RestoreDetails
(Optional)

Details provides a detailed status for each restore in each cluster.

This page was automatically generated with gen-crd-api-reference-docs