KubeBlocks
BlogsKubeBlocks Cloud

Getting Started

Introduction
Supported addons
Installation

Concepts and Features

Concepts

Backup and Restore

Introduction

Backup

Configure BackupRepo
Configure BackupPolicy
Scheduled backup
On-demand backup

Restore

Restore from backup set
Point-in-Time Recovery

In Place Update

Introduction
Enable in-place update

Instance Template

Introduction
Apply instance template

Trouble Shooting

FAQs

References

API Reference

Cluster
Operations
Parameters
Dataprotection
Add-On
Terminology
Install Addons
Install kbcli
Snapshot Controller
Create a test Kubernetes cluster
Kubernetes and Operator 101

Upgrade KubeBlocks

Upgrade to v0.8
Upgrade to v0.9.0
Upgrade to v0.9.x

Release Notes

v1.0.0-cn
v1.0.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0

© 2025 ApeCloud PTE. Ltd.


    Packages:

    • dataprotection.kubeblocks.io/v1alpha1

    dataprotection.kubeblocks.io/v1alpha1

    Resource Types:

    • ActionSet
    • Backup
    • BackupPolicy
    • BackupRepo
    • BackupSchedule
    • Restore
    • StorageProvider

    ActionSet

    ActionSet is the Schema for the actionsets API

    FieldDescription

    apiVersion
    string

    dataprotection.kubeblocks.io/v1alpha1

    kind
    string

    ActionSet

    metadata

    Kubernetes meta/v1.ObjectMeta

    Refer to the Kubernetes API documentation for the fields of the metadata field.

    spec

    ActionSetSpec



    backupType

    BackupType

    Specifies the backup type. Supported values include:

    • Full for a full backup.

    • Incremental back up data that have changed since the last backup (either full or incremental).

    • Differential back up data that has changed since the last full backup.

    • Continuous back up transaction logs continuously, such as MySQL binlog, PostgreSQL WAL, etc.

    • Selective back up data more precisely, use custom parameters, such as specific databases or tables.

    Continuous backup is essential for implementing Point-in-Time Recovery (PITR).

    parametersSchema

    ActionSetParametersSchema

    (Optional)

    Specifies the schema of parameters in backups and restores before their usage.

    env

    []Kubernetes core/v1.EnvVar

    (Optional)

    Specifies a list of environment variables to be set in the container.

    envFrom

    []Kubernetes core/v1.EnvFromSource

    (Optional)

    Specifies a list of sources to populate environment variables in the container. The keys within a source must be a C_IDENTIFIER. Any invalid keys will be reported as an event when the container starts. If a key exists in multiple sources, the value from the last source will take precedence. Any values defined by an Env with a duplicate key will take precedence.

    This field cannot be updated.

    backup

    BackupActionSpec

    (Optional)

    Specifies the backup action.

    restore

    RestoreActionSpec

    (Optional)

    Specifies the restore action.

    status

    ActionSetStatus

    Backup

    Backup is the Schema for the backups API.

    FieldDescription

    apiVersion
    string

    dataprotection.kubeblocks.io/v1alpha1

    kind
    string

    Backup

    metadata

    Kubernetes meta/v1.ObjectMeta

    Refer to the Kubernetes API documentation for the fields of the metadata field.

    spec

    BackupSpec



    backupPolicyName

    string

    Specifies the backup policy to be applied for this backup.

    backupMethod

    string

    Specifies the backup method name that is defined in the backup policy.

    deletionPolicy

    BackupDeletionPolicy

    Determines whether the backup contents stored in the backup repository should be deleted when the backup custom resource(CR) is deleted. Supported values are Retain and Delete.

    • Retain means that the backup content and its physical snapshot on backup repository are kept.

    • Delete means that the backup content and its physical snapshot on backup repository are deleted.

    the backup CR but retaining the backup contents in backup repository. The current implementation only prevent accidental deletion of backup data.

    retentionPeriod

    RetentionPeriod

    (Optional)

    Determines a duration up to which the backup should be kept. Controller will remove all backups that are older than the RetentionPeriod. If not set, the backup will be kept forever. For example, RetentionPeriod of 30d will keep only the backups of last 30 days. Sample duration format:

    • years: 2y

    • months: 6mo

    • days: 30d

    • hours: 12h

    • minutes: 30m

    You can also combine the above durations. For example: 30d12h30m.

    parentBackupName

    string

    (Optional)

    Determines the parent backup name for incremental or differential backup.

    parameters

    []ParameterPair

    (Optional)

    Specifies a list of name-value pairs representing parameters and their corresponding values. Parameters match the schema specified in the actionset.spec.parametersSchema

    status

    BackupStatus

    BackupPolicy

    BackupPolicy is the Schema for the backuppolicies API.

    FieldDescription

    apiVersion
    string

    dataprotection.kubeblocks.io/v1alpha1

    kind
    string

    BackupPolicy

    metadata

    Kubernetes meta/v1.ObjectMeta

    Refer to the Kubernetes API documentation for the fields of the metadata field.

    spec

    BackupPolicySpec



    backupRepoName

    string

    (Optional)

    Specifies the name of BackupRepo where the backup data will be stored. If not set, data will be stored in the default backup repository.

    pathPrefix

    string

    (Optional)

    Specifies the directory inside the backup repository to store the backup. This path is relative to the path of the backup repository.

    backoffLimit

    int32

    (Optional)

    Specifies the number of retries before marking the backup as failed.

    target

    BackupTarget

    Specifies the target information to back up, such as the target pod, the cluster connection credential.

    targets

    []BackupTarget

    Specifies multiple target information for backup operations. This includes details such as the target pod and cluster connection credentials. All specified targets will be backed up collectively. optional

    backupMethods

    []BackupMethod

    Defines the backup methods.

    useKopia

    bool

    (Optional)

    Specifies whether backup data should be stored in a Kopia repository.

    Data within the Kopia repository is both compressed and encrypted. Furthermore, data deduplication is implemented across various backups of the same cluster. This approach significantly reduces the actual storage usage, particularly for clusters with a low update frequency.

    NOTE: This feature should NOT be enabled when using KubeBlocks Community Edition, otherwise the backup will not be processed.

    encryptionConfig

    EncryptionConfig

    (Optional)

    Specifies the parameters for encrypting backup data. Encryption will be disabled if the field is not set.

    retentionPolicy

    BackupPolicyRetentionPolicy

    (Optional)

    Specifies the backup retention policy. This has a precedence over backup.spec.retentionPeriod.

    status

    BackupPolicyStatus

    BackupRepo

    BackupRepo is a repository for storing backup data.

    FieldDescription

    apiVersion
    string

    dataprotection.kubeblocks.io/v1alpha1

    kind
    string

    BackupRepo

    metadata

    Kubernetes meta/v1.ObjectMeta

    Refer to the Kubernetes API documentation for the fields of the metadata field.

    spec

    BackupRepoSpec



    storageProviderRef

    string

    Specifies the name of the StorageProvider used by this backup repository.

    accessMethod

    AccessMethod

    (Optional)

    Specifies the access method of the backup repository.

    volumeCapacity

    Kubernetes resource.Quantity

    (Optional)

    Specifies the capacity of the PVC created by this backup repository.

    pvReclaimPolicy

    Kubernetes core/v1.PersistentVolumeReclaimPolicy

    Specifies reclaim policy of the PV created by this backup repository.

    config

    map[string]string

    (Optional)

    Stores the non-secret configuration parameters for the StorageProvider.

    credential

    Kubernetes core/v1.SecretReference

    (Optional)

    References to the secret that holds the credentials for the StorageProvider.

    pathPrefix

    string

    (Optional)

    Specifies the prefix of the path for storing backup data.

    status

    BackupRepoStatus

    BackupSchedule

    BackupSchedule is the Schema for the backupschedules API.

    FieldDescription

    apiVersion
    string

    dataprotection.kubeblocks.io/v1alpha1

    kind
    string

    BackupSchedule

    metadata

    Kubernetes meta/v1.ObjectMeta

    Refer to the Kubernetes API documentation for the fields of the metadata field.

    spec

    BackupScheduleSpec



    backupPolicyName

    string

    Specifies the backupPolicy to be applied for the schedules.

    startingDeadlineMinutes

    int64

    (Optional)

    Defines the deadline in minutes for starting the backup workload if it misses its scheduled time for any reason.

    schedules

    []SchedulePolicy

    Defines the list of backup schedules.

    status

    BackupScheduleStatus

    Restore

    Restore is the Schema for the restores API

    FieldDescription

    apiVersion
    string

    dataprotection.kubeblocks.io/v1alpha1

    kind
    string

    Restore

    metadata

    Kubernetes meta/v1.ObjectMeta

    Refer to the Kubernetes API documentation for the fields of the metadata field.

    spec

    RestoreSpec



    backup

    BackupRef

    Specifies the backup to be restored. The restore behavior is based on the backup type:

    1. Full: will be restored the full backup directly.

    2. Incremental: will be restored sequentially from the most recent full backup of this incremental backup.

    3. Differential: will be restored sequentially from the parent backup of the differential backup.

    4. Continuous: will find the most recent full backup at this time point and the continuous backups after it to restore.

    restoreTime

    string

    (Optional)

    Specifies the point in time for restoring.

    resources

    RestoreKubeResources

    (Optional)

    Restores the specified resources of Kubernetes.

    prepareDataConfig

    PrepareDataConfig

    (Optional)

    Configuration for the action of “prepareData” phase, including the persistent volume claims that need to be restored and scheduling strategy of temporary recovery pod.

    serviceAccountName

    string

    (Optional)

    Specifies the service account name needed for recovery pod.

    readyConfig

    ReadyConfig

    (Optional)

    Configuration for the action of “postReady” phase.

    env

    []Kubernetes core/v1.EnvVar

    (Optional)

    List of environment variables to set in the container for restore. These will be merged with the env of Backup and ActionSet.

    The priority of merging is as follows: Restore env > Backup env > ActionSet env.

    containerResources

    Kubernetes core/v1.ResourceRequirements

    (Optional)

    Specifies the required resources of restore job’s container.

    backoffLimit

    int32

    (Optional)

    Specifies the number of retries before marking the restore failed.

    parameters

    []ParameterPair

    (Optional)

    Specifies a list of name-value pairs representing parameters and their corresponding values. Parameters match the schema specified in the actionset.spec.parametersSchema

    status

    RestoreStatus

    StorageProvider

    StorageProvider comprises specifications that provide guidance on accessing remote storage. Currently the supported access methods are via a dedicated CSI driver or the datasafed tool. In case of CSI driver, the specification expounds on provisioning PVCs for that driver. As for the datasafed tool, the specification provides insights on generating the necessary configuration file.

    FieldDescription

    apiVersion
    string

    dataprotection.kubeblocks.io/v1alpha1

    kind
    string

    StorageProvider

    metadata

    Kubernetes meta/v1.ObjectMeta

    Refer to the Kubernetes API documentation for the fields of the metadata field.

    spec

    StorageProviderSpec



    csiDriverName

    string

    (Optional)

    Specifies the name of the CSI driver used to access remote storage. This field can be empty, it indicates that the storage is not accessible via CSI.

    csiDriverSecretTemplate

    string

    (Optional)

    A Go template that used to render and generate k8s.io/api/core/v1.Secret resources for a specific CSI driver. For example, accessKey and secretKey needed by CSI-S3 are stored in this Secret resource.

    storageClassTemplate

    string

    (Optional)

    A Go template utilized to render and generate kubernetes.storage.k8s.io.v1.StorageClass resources. The `StorageClass’ created by this template is aimed at using the CSI driver.

    persistentVolumeClaimTemplate

    string

    (Optional)

    A Go template that renders and generates k8s.io/api/core/v1.PersistentVolumeClaim resources. This PVC can reference the StorageClass created from storageClassTemplate, allowing Pods to access remote storage by mounting the PVC.

    datasafedConfigTemplate

    string

    (Optional)

    A Go template used to render and generate k8s.io/api/core/v1.Secret. This Secret involves the configuration details required by the datasafed tool to access remote storage. For example, the Secret should contain endpoint, bucket, ‘region’, ‘accessKey’, ‘secretKey’, or something else for S3 storage. This field can be empty, it means this kind of storage is not accessible via the datasafed tool.

    parametersSchema

    ParametersSchema

    (Optional)

    Describes the parameters required for storage. The parameters defined here can be referenced in the above templates, and kbcli uses this definition for dynamic command-line parameter parsing.

    status

    StorageProviderStatus

    AccessMethod (string alias)

    (Appears on:BackupRepoSpec)

    AccessMethod represents an enumeration type that outlines how the BackupRepo can be accessed.

    ValueDescription

    "Mount"

    AccessMethodMount suggests that the storage is mounted locally which allows for remote files to be accessed akin to local ones.

    "Tool"

    AccessMethodTool indicates the utilization of a command-line tool for accessing the storage.

    ActionErrorMode (string alias)

    (Appears on:ExecActionSpec, JobActionSpec)

    ActionErrorMode defines how to handle an error from an action. Currently, only the Fail mode is supported, but the Continue mode will be supported in the future.

    ValueDescription

    "Continue"

    ActionErrorModeContinue signifies that an error from an action is acceptable and can be ignored.

    "Fail"

    ActionErrorModeFail signifies that an error from an action is problematic and should be treated as a failure.

    ActionPhase (string alias)

    (Appears on:ActionStatus)

    ValueDescription

    "Completed"

    ActionPhaseCompleted means the action has run successfully without errors.

    "Failed"

    ActionPhaseFailed means the action ran but encountered an error that

    "New"

    ActionPhaseNew means the action has been created but not yet processed by the BackupController.

    "Running"

    ActionPhaseRunning means the action is currently executing.

    ActionSetParametersSchema

    (Appears on:ActionSetSpec)

    FieldDescription

    openAPIV3Schema

    Kubernetes api extensions v1.JSONSchemaProps

    (Optional)

    Defines the schema for parameters using the OpenAPI v3. The supported property types include:

    • string
    • number
    • integer
    • array: Note that only items of string type are supported.

    ActionSetSpec

    (Appears on:ActionSet)

    ActionSetSpec defines the desired state of ActionSet

    FieldDescription

    backupType

    BackupType

    Specifies the backup type. Supported values include:

    • Full for a full backup.

    • Incremental back up data that have changed since the last backup (either full or incremental).

    • Differential back up data that has changed since the last full backup.

    • Continuous back up transaction logs continuously, such as MySQL binlog, PostgreSQL WAL, etc.

    • Selective back up data more precisely, use custom parameters, such as specific databases or tables.

    Continuous backup is essential for implementing Point-in-Time Recovery (PITR).

    parametersSchema

    ActionSetParametersSchema

    (Optional)

    Specifies the schema of parameters in backups and restores before their usage.

    env

    []Kubernetes core/v1.EnvVar

    (Optional)

    Specifies a list of environment variables to be set in the container.

    envFrom

    []Kubernetes core/v1.EnvFromSource

    (Optional)

    Specifies a list of sources to populate environment variables in the container. The keys within a source must be a C_IDENTIFIER. Any invalid keys will be reported as an event when the container starts. If a key exists in multiple sources, the value from the last source will take precedence. Any values defined by an Env with a duplicate key will take precedence.

    This field cannot be updated.

    backup

    BackupActionSpec

    (Optional)

    Specifies the backup action.

    restore

    RestoreActionSpec

    (Optional)

    Specifies the restore action.

    ActionSetStatus

    (Appears on:ActionSet)

    ActionSetStatus defines the observed state of ActionSet

    FieldDescription

    phase

    Phase

    (Optional)

    Indicates the phase of the ActionSet. This can be either ‘Available’ or ‘Unavailable’.

    message

    string

    (Optional)

    Provides a human-readable explanation detailing the reason for the current phase of the ActionSet.

    observedGeneration

    int64

    (Optional)

    Represents the generation number that has been observed by the controller.

    ActionSpec

    (Appears on:BackupActionSpec, RestoreActionSpec)

    ActionSpec defines an action that should be executed. Only one of the fields may be set.

    FieldDescription

    exec

    ExecActionSpec

    (Optional)

    Specifies that the action should be executed using the pod’s exec API within a container.

    job

    JobActionSpec

    (Optional)

    Specifies that the action should be executed by a Kubernetes Job.

    ActionStatus

    (Appears on:BackupStatus)

    FieldDescription

    name

    string

    (Optional)

    The name of the action.

    targetPodName

    string

    Records the target pod name which has been backed up.

    phase

    ActionPhase

    (Optional)

    The current phase of the action.

    startTimestamp

    Kubernetes meta/v1.Time

    (Optional)

    Records the time an action was started.

    completionTimestamp

    Kubernetes meta/v1.Time

    (Optional)

    Records the time an action was completed.

    failureReason

    string

    (Optional)

    An error that caused the action to fail.

    actionType

    ActionType

    (Optional)

    The type of the action.

    availableReplicas

    int32

    (Optional)

    Available replicas for statefulSet action.

    objectRef

    Kubernetes core/v1.ObjectReference

    (Optional)

    The object reference for the action.

    totalSize

    string

    (Optional)

    The total size of backed up data size. A string with capacity units in the format of “1Gi”, “1Mi”, “1Ki”. If no capacity unit is specified, it is assumed to be in bytes.

    timeRange

    BackupTimeRange

    (Optional)

    Records the time range of backed up data, for PITR, this is the time range of recoverable data.

    volumeSnapshots

    []VolumeSnapshotStatus

    (Optional)

    Records the volume snapshot status for the action.

    ActionType (string alias)

    (Appears on:ActionStatus)

    ValueDescription

    "Job"

    ""

    "StatefulSet"

    BackupActionSpec

    (Appears on:ActionSetSpec)

    FieldDescription

    backupData

    BackupDataActionSpec

    Represents the action to be performed for backing up data.

    preBackup

    []ActionSpec

    (Optional)

    Represents a set of actions that should be executed before the backup process begins.

    postBackup

    []ActionSpec

    (Optional)

    Represents a set of actions that should be executed after the backup process has completed.

    preDelete

    BaseJobActionSpec

    (Optional)

    Represents a custom deletion action that can be executed before the built-in deletion action. Note: The preDelete action job will ignore the env/envFrom.

    withParameters

    []string

    (Optional)

    Specifies the parameters used by the backup action

    BackupDataActionSpec

    (Appears on:BackupActionSpec)

    BackupDataActionSpec defines how to back up data.

    FieldDescription

    JobActionSpec

    JobActionSpec

    (Members of JobActionSpec are embedded into this type.)

    syncProgress

    SyncProgress

    (Optional)

    Determines if the backup progress should be synchronized and the interval for synchronization in seconds.

    BackupDeletionPolicy (string alias)

    (Appears on:BackupSpec)

    BackupDeletionPolicy describes the policy for end-of-life maintenance of backup content.

    ValueDescription

    "Delete"

    "Retain"

    BackupMethod

    (Appears on:BackupPolicySpec, BackupStatus)

    BackupMethod defines the backup method.

    FieldDescription

    name

    string

    The name of backup method.

    compatibleMethod

    string

    (Optional)

    The name of the compatible full backup method, used by incremental backups.

    snapshotVolumes

    bool

    (Optional)

    Specifies whether to take snapshots of persistent volumes. If true, the ActionSetName is not required, the controller will use the CSI volume snapshotter to create the snapshot.

    actionSetName

    string

    (Optional)

    Refers to the ActionSet object that defines the backup actions. For volume snapshot backup, the actionSet is not required, the controller will use the CSI volume snapshotter to create the snapshot.

    targetVolumes

    TargetVolumeInfo

    (Optional)

    Specifies which volumes from the target should be mounted in the backup workload.

    env

    []Kubernetes core/v1.EnvVar

    (Optional)

    Specifies the environment variables for the backup workload.

    runtimeSettings

    RuntimeSettings

    (Optional)

    Specifies runtime settings for the backup workload container.

    target

    BackupTarget

    (Optional)

    Specifies the target information to back up, it will override the target in backup policy.

    targets

    []BackupTarget

    Specifies multiple target information for backup operations. This includes details such as the target pod and cluster connection credentials. All specified targets will be backed up collectively.

    BackupMethodTPL

    (Appears on:BackupPolicyTemplateSpec)

    FieldDescription

    name

    string

    The name of backup method.

    compatibleMethod

    string

    (Optional)

    The name of the compatible full backup method, used by incremental backups.

    snapshotVolumes

    bool

    (Optional)

    Specifies whether to take snapshots of persistent volumes. If true, the ActionSetName is not required, the controller will use the CSI volume snapshotter to create the snapshot.

    actionSetName

    string

    (Optional)

    Refers to the ActionSet object that defines the backup actions. For volume snapshot backup, the actionSet is not required, the controller will use the CSI volume snapshotter to create the snapshot.

    targetVolumes

    TargetVolumeInfo

    (Optional)

    Specifies which volumes from the target should be mounted in the backup workload.

    env

    []EnvVar

    (Optional)

    Specifies the environment variables for the backup workload.

    runtimeSettings

    RuntimeSettings

    (Optional)

    Specifies runtime settings for the backup workload container.

    target

    TargetInstance

    (Optional)

    If set, specifies the method for selecting the replica to be backed up using the criteria defined here. If this field is not set, the selection method specified in backupPolicy.target is used.

    This field provides a way to override the global backupPolicy.target setting for specific BackupMethod.

    BackupPhase (string alias)

    (Appears on:BackupStatus)

    BackupPhase describes the lifecycle phase of a Backup.

    ValueDescription

    "Completed"

    BackupPhaseCompleted means the backup has run successfully without errors.

    "Deleting"

    BackupPhaseDeleting means the backup and all its associated data are being deleted.

    "Failed"

    BackupPhaseFailed means the backup ran but encountered an error that prevented it from completing successfully.

    "New"

    BackupPhaseNew means the backup has been created but not yet processed by the BackupController.

    "Running"

    BackupPhaseRunning means the backup is currently executing.

    BackupPolicyPhase (string alias)

    BackupPolicyPhase defines phases for BackupPolicy.

    ValueDescription

    "Available"

    "Failed"

    BackupPolicyRetentionPolicy (string alias)

    (Appears on:BackupPolicySpec, BackupPolicyTemplateSpec)

    BackupPolicyRetentionPolicy defines the backup retention policy.

    ValueDescription

    ""

    BackupPolicyRetentionPolicyNone indicates that no backup retention policy is set.

    "retainLatestBackup"

    BackupPolicyRetentionPolicyRetainLatestBackup indicates that the latest backup is retained.

    BackupPolicySpec

    (Appears on:BackupPolicy)

    BackupPolicySpec defines the desired state of BackupPolicy

    FieldDescription

    backupRepoName

    string

    (Optional)

    Specifies the name of BackupRepo where the backup data will be stored. If not set, data will be stored in the default backup repository.

    pathPrefix

    string

    (Optional)

    Specifies the directory inside the backup repository to store the backup. This path is relative to the path of the backup repository.

    backoffLimit

    int32

    (Optional)

    Specifies the number of retries before marking the backup as failed.

    target

    BackupTarget

    Specifies the target information to back up, such as the target pod, the cluster connection credential.

    targets

    []BackupTarget

    Specifies multiple target information for backup operations. This includes details such as the target pod and cluster connection credentials. All specified targets will be backed up collectively. optional

    backupMethods

    []BackupMethod

    Defines the backup methods.

    useKopia

    bool

    (Optional)

    Specifies whether backup data should be stored in a Kopia repository.

    Data within the Kopia repository is both compressed and encrypted. Furthermore, data deduplication is implemented across various backups of the same cluster. This approach significantly reduces the actual storage usage, particularly for clusters with a low update frequency.

    NOTE: This feature should NOT be enabled when using KubeBlocks Community Edition, otherwise the backup will not be processed.

    encryptionConfig

    EncryptionConfig

    (Optional)

    Specifies the parameters for encrypting backup data. Encryption will be disabled if the field is not set.

    retentionPolicy

    BackupPolicyRetentionPolicy

    (Optional)

    Specifies the backup retention policy. This has a precedence over backup.spec.retentionPeriod.

    BackupPolicyStatus

    (Appears on:BackupPolicy)

    BackupPolicyStatus defines the observed state of BackupPolicy

    FieldDescription

    phase

    Phase

    (Optional)

    Phase - in list of [Available,Unavailable]

    message

    string

    (Optional)

    A human-readable message indicating details about why the BackupPolicy is in this phase.

    observedGeneration

    int64

    (Optional)

    ObservedGeneration is the most recent generation observed for this BackupPolicy. It refers to the BackupPolicy’s generation, which is updated on mutation by the API Server.

    BackupPolicyTemplate

    BackupPolicyTemplate should be provided by addon developers. It is responsible for generating BackupPolicies for the addon that requires backup operations, also determining the suitable backup methods and strategies.

    FieldDescription

    metadata

    Kubernetes meta/v1.ObjectMeta

    The metadata for the BackupPolicyTemplate object, including name, namespace, labels, and annotations.

    Refer to the Kubernetes API documentation for the fields of the metadata field.

    spec

    BackupPolicyTemplateSpec

    Defines the desired state of the BackupPolicyTemplate.



    serviceKind

    string

    (Optional)

    Defines the type of well-known service protocol that the BackupPolicyTemplate provides, and it is optional. Some examples of well-known service protocols include:

    • “MySQL”: Indicates that the Component provides a MySQL database service.

    • “PostgreSQL”: Indicates that the Component offers a PostgreSQL database service.

    • “Redis”: Signifies that the Component functions as a Redis key-value store.

    • “ETCD”: Denotes that the Component serves as an ETCD distributed key-value store

    compDefs

    []string

    CompDefs specifies names for the component definitions associated with this BackupPolicyTemplate. Each name in the list can represent an exact name, a name prefix, or a regular expression pattern.

    For example:

    • “mysql-8.0.30-v1alpha1”: Matches the exact name “mysql-8.0.30-v1alpha1”

    • “mysql-8.0.30”: Matches all names starting with “mysql-8.0.30”

    • ”^mysql-8.0.\d{1,2}$“: Matches all names starting with “mysql-8.0.” followed by one or two digits.

    target

    TargetInstance

    (Optional)

    Defines the selection criteria of instance to be backed up, and the connection credential to be used during the backup process.

    schedules

    []SchedulePolicy

    (Optional)

    Defines the execution plans for backup tasks, specifying when and how backups should occur, and the retention period of backup files.

    backupMethods

    []BackupMethodTPL

    Defines an array of BackupMethods to be used.

    backoffLimit

    int32

    (Optional)

    Specifies the maximum number of retry attempts for a backup before it is considered a failure.

    retentionPolicy

    BackupPolicyRetentionPolicy

    (Optional)

    Defines the backup retention policy to be used.

    status

    BackupPolicyTemplateStatus

    Populated by the system, it represents the current information about the BackupPolicyTemplate.

    BackupPolicyTemplateSpec

    (Appears on:BackupPolicyTemplate)

    BackupPolicyTemplateSpec contains the settings in a BackupPolicyTemplate.

    FieldDescription

    serviceKind

    string

    (Optional)

    Defines the type of well-known service protocol that the BackupPolicyTemplate provides, and it is optional. Some examples of well-known service protocols include:

    • “MySQL”: Indicates that the Component provides a MySQL database service.

    • “PostgreSQL”: Indicates that the Component offers a PostgreSQL database service.

    • “Redis”: Signifies that the Component functions as a Redis key-value store.

    • “ETCD”: Denotes that the Component serves as an ETCD distributed key-value store

    compDefs

    []string

    CompDefs specifies names for the component definitions associated with this BackupPolicyTemplate. Each name in the list can represent an exact name, a name prefix, or a regular expression pattern.

    For example:

    • “mysql-8.0.30-v1alpha1”: Matches the exact name “mysql-8.0.30-v1alpha1”

    • “mysql-8.0.30”: Matches all names starting with “mysql-8.0.30”

    • ”^mysql-8.0.\d{1,2}$“: Matches all names starting with “mysql-8.0.” followed by one or two digits.

    target

    TargetInstance

    (Optional)

    Defines the selection criteria of instance to be backed up, and the connection credential to be used during the backup process.

    schedules

    []SchedulePolicy

    (Optional)

    Defines the execution plans for backup tasks, specifying when and how backups should occur, and the retention period of backup files.

    backupMethods

    []BackupMethodTPL

    Defines an array of BackupMethods to be used.

    backoffLimit

    int32

    (Optional)

    Specifies the maximum number of retry attempts for a backup before it is considered a failure.

    retentionPolicy

    BackupPolicyRetentionPolicy

    (Optional)

    Defines the backup retention policy to be used.

    BackupPolicyTemplateStatus

    (Appears on:BackupPolicyTemplate)

    BackupPolicyTemplateStatus defines the observed state of BackupPolicyTemplate.

    FieldDescription

    observedGeneration

    int64

    (Optional)

    Represents the most recent generation observed for this BackupPolicyTemplate.

    phase

    Phase

    Specifies the current phase of the BackupPolicyTemplate. Valid values are empty, Available, Unavailable. When Available, the BackupPolicyTemplate is ready and can be referenced by related objects.

    message

    string

    (Optional)

    Provides additional information about the current phase.

    BackupRef

    (Appears on:RestoreSpec)

    BackupRef describes the backup info.

    FieldDescription

    name

    string

    Specifies the backup name.

    namespace

    string

    Specifies the backup namespace.

    sourceTargetName

    string

    Specifies the source target for restoration, identified by its name.

    BackupRepoPhase (string alias)

    (Appears on:BackupRepoStatus)

    BackupRepoPhase denotes different stages for the BackupRepo.

    ValueDescription

    "Deleting"

    BackupRepoDeleting indicates the backup repository is being deleted.

    "Failed"

    BackupRepoFailed indicates the pre-check has been failed.

    "PreChecking"

    BackupRepoPreChecking indicates the backup repository is being pre-checked.

    "Ready"

    BackupRepoReady indicates the backup repository is ready for use.

    BackupRepoSpec

    (Appears on:BackupRepo)

    BackupRepoSpec defines the desired state of BackupRepo.

    FieldDescription

    storageProviderRef

    string

    Specifies the name of the StorageProvider used by this backup repository.

    accessMethod

    AccessMethod

    (Optional)

    Specifies the access method of the backup repository.

    volumeCapacity

    Kubernetes resource.Quantity

    (Optional)

    Specifies the capacity of the PVC created by this backup repository.

    pvReclaimPolicy

    Kubernetes core/v1.PersistentVolumeReclaimPolicy

    Specifies reclaim policy of the PV created by this backup repository.

    config

    map[string]string

    (Optional)

    Stores the non-secret configuration parameters for the StorageProvider.

    credential

    Kubernetes core/v1.SecretReference

    (Optional)

    References to the secret that holds the credentials for the StorageProvider.

    pathPrefix

    string

    (Optional)

    Specifies the prefix of the path for storing backup data.

    BackupRepoStatus

    (Appears on:BackupRepo)

    BackupRepoStatus defines the observed state of BackupRepo.

    FieldDescription

    phase

    BackupRepoPhase

    (Optional)

    Represents the current phase of reconciliation for the backup repository. Permissible values are PreChecking, Failed, Ready, Deleting.

    conditions

    []Kubernetes meta/v1.Condition

    (Optional)

    Provides a detailed description of the current state of the backup repository.

    observedGeneration

    int64

    (Optional)

    Represents the latest generation of the resource that the controller has observed.

    generatedCSIDriverSecret

    Kubernetes core/v1.SecretReference

    (Optional)

    Refers to the generated secret for the StorageProvider.

    generatedStorageClassName

    string

    (Optional)

    Represents the name of the generated storage class.

    backupPVCName

    string

    (Optional)

    Represents the name of the PVC that stores backup data.

    toolConfigSecretName

    string

    (Optional)

    Represents the name of the secret that contains the configuration for the tool.

    isDefault

    bool

    (Optional)

    Indicates if this backup repository is the default one.

    BackupSchedulePhase (string alias)

    (Appears on:BackupScheduleStatus)

    BackupSchedulePhase defines the phase of BackupSchedule

    ValueDescription

    "Available"

    BackupSchedulePhaseAvailable indicates the backup schedule is available.

    "Failed"

    BackupSchedulePhaseFailed indicates the backup schedule has failed.

    BackupScheduleSpec

    (Appears on:BackupSchedule)

    BackupScheduleSpec defines the desired state of BackupSchedule.

    FieldDescription

    backupPolicyName

    string

    Specifies the backupPolicy to be applied for the schedules.

    startingDeadlineMinutes

    int64

    (Optional)

    Defines the deadline in minutes for starting the backup workload if it misses its scheduled time for any reason.

    schedules

    []SchedulePolicy

    Defines the list of backup schedules.

    BackupScheduleStatus

    (Appears on:BackupSchedule)

    BackupScheduleStatus defines the observed state of BackupSchedule.

    FieldDescription

    phase

    BackupSchedulePhase

    (Optional)

    Describes the phase of the BackupSchedule.

    observedGeneration

    int64

    (Optional)

    Represents the most recent generation observed for this BackupSchedule. It refers to the BackupSchedule’s generation, which is updated on mutation by the API Server.

    failureReason

    string

    (Optional)

    Represents an error that caused the backup to fail.

    schedules

    map[string]github.com/apecloud/kubeblocks/apis/dataprotection/v1alpha1.ScheduleStatus

    (Optional)

    Describes the status of each schedule.

    BackupSpec

    (Appears on:Backup)

    BackupSpec defines the desired state of Backup.

    FieldDescription

    backupPolicyName

    string

    Specifies the backup policy to be applied for this backup.

    backupMethod

    string

    Specifies the backup method name that is defined in the backup policy.

    deletionPolicy

    BackupDeletionPolicy

    Determines whether the backup contents stored in the backup repository should be deleted when the backup custom resource(CR) is deleted. Supported values are Retain and Delete.

    • Retain means that the backup content and its physical snapshot on backup repository are kept.

    • Delete means that the backup content and its physical snapshot on backup repository are deleted.

    the backup CR but retaining the backup contents in backup repository. The current implementation only prevent accidental deletion of backup data.

    retentionPeriod

    RetentionPeriod

    (Optional)

    Determines a duration up to which the backup should be kept. Controller will remove all backups that are older than the RetentionPeriod. If not set, the backup will be kept forever. For example, RetentionPeriod of 30d will keep only the backups of last 30 days. Sample duration format:

    • years: 2y

    • months: 6mo

    • days: 30d

    • hours: 12h

    • minutes: 30m

    You can also combine the above durations. For example: 30d12h30m.

    parentBackupName

    string

    (Optional)

    Determines the parent backup name for incremental or differential backup.

    parameters

    []ParameterPair

    (Optional)

    Specifies a list of name-value pairs representing parameters and their corresponding values. Parameters match the schema specified in the actionset.spec.parametersSchema

    BackupStatus

    (Appears on:Backup)

    BackupStatus defines the observed state of Backup.

    FieldDescription

    formatVersion

    string

    (Optional)

    Specifies the backup format version, which includes major, minor, and patch versions.

    phase

    BackupPhase

    (Optional)

    Indicates the current state of the backup operation.

    expiration

    Kubernetes meta/v1.Time

    (Optional)

    Indicates when this backup becomes eligible for garbage collection. A ‘null’ value implies that the backup will not be cleaned up unless manually deleted.

    startTimestamp

    Kubernetes meta/v1.Time

    (Optional)

    Records the time when the backup operation was started. The server’s time is used for this timestamp.

    completionTimestamp

    Kubernetes meta/v1.Time

    (Optional)

    Records the time when the backup operation was completed. This timestamp is recorded even if the backup operation fails. The server’s time is used for this timestamp.

    duration

    Kubernetes meta/v1.Duration

    (Optional)

    Records the duration of the backup operation. When converted to a string, the format is “1h2m0.5s”.

    totalSize

    string

    (Optional)

    Records the total size of the data backed up. The size is represented as a string with capacity units in the format of “1Gi”, “1Mi”, “1Ki”. If no capacity unit is specified, it is assumed to be in bytes.

    failureReason

    string

    (Optional)

    Any error that caused the backup operation to fail.

    backupRepoName

    string

    (Optional)

    The name of the backup repository.

    path

    string

    (Optional)

    The directory within the backup repository where the backup data is stored. This is an absolute path within the backup repository.

    kopiaRepoPath

    string

    (Optional)

    Records the path of the Kopia repository.

    persistentVolumeClaimName

    string

    (Optional)

    Records the name of the persistent volume claim used to store the backup data.

    timeRange

    BackupTimeRange

    (Optional)

    Records the time range of the data backed up. For Point-in-Time Recovery (PITR), this is the time range of recoverable data.

    target

    BackupStatusTarget

    (Optional)

    Records the target information for this backup.

    targets

    []BackupStatusTarget

    (Optional)

    Records the targets information for this backup.

    backupMethod

    BackupMethod

    (Optional)

    Records the backup method information for this backup. Refer to BackupMethod for more details.

    encryptionConfig

    EncryptionConfig

    (Optional)

    Records the encryption config for this backup.

    actions

    []ActionStatus

    (Optional)

    Records the actions status for this backup.

    volumeSnapshots

    []VolumeSnapshotStatus

    (Optional)

    Records the volume snapshot status for the action.

    parentBackupName

    string

    (Optional)

    Records the parent backup name for incremental or differential backup. When the parent backup is deleted, the backup will also be deleted.

    baseBackupName

    string

    (Optional)

    Records the base full backup name for incremental backup or differential backup. When the base backup is deleted, the backup will also be deleted.

    extras

    []string

    (Optional)

    Records any additional information for the backup.

    BackupStatusTarget

    (Appears on:BackupStatus)

    FieldDescription

    BackupTarget

    BackupTarget

    (Members of BackupTarget are embedded into this type.)

    selectedTargetPods

    []string

    Records the selected pods by the target info during backup.

    BackupTarget

    (Appears on:BackupMethod, BackupPolicySpec, BackupStatusTarget)

    FieldDescription

    name

    string

    Specifies a mandatory and unique identifier for each target when using the “targets” field. The backup data for the current target is stored in a uniquely named subdirectory.

    podSelector

    PodSelector

    Used to find the target pod. The volumes of the target pod will be backed up.

    connectionCredential

    ConnectionCredential

    (Optional)

    Specifies the connection credential to connect to the target database cluster.

    resources

    KubeResources

    (Optional)

    Specifies the kubernetes resources to back up.

    serviceAccountName

    string

    Specifies the service account to run the backup workload.

    containerPort

    ContainerPort

    (Optional)

    Specifies the container port in the target pod. If not specified, the first container and its first port will be used.

    BackupTimeRange

    (Appears on:ActionStatus, BackupStatus)

    BackupTimeRange records the time range of backed up data, for PITR, this is the time range of recoverable data.

    FieldDescription

    timeZone

    string

    (Optional)

    time zone, supports only zone offset, with a value range of “-12:59 ~ +13:00”.

    start

    Kubernetes meta/v1.Time

    (Optional)

    Records the start time of the backup, in Coordinated Universal Time (UTC).

    end

    Kubernetes meta/v1.Time

    (Optional)

    Records the end time of the backup, in Coordinated Universal Time (UTC).

    BackupType (string alias)

    (Appears on:ActionSetSpec)

    BackupType the backup type.

    ValueDescription

    "Continuous"

    "Differential"

    "Full"

    "Incremental"

    "Selective"

    BaseJobActionSpec

    (Appears on:BackupActionSpec, JobActionSpec)

    BaseJobActionSpec is an action that creates a Kubernetes Job to execute a command.

    FieldDescription

    image

    string

    Specifies the image of the backup container.

    command

    []string

    Defines the commands to back up the volume data.

    ConnectionCredential

    (Appears on:BackupTarget, ReadyConfig)

    ConnectionCredential specifies the connection credential to connect to the target database cluster.

    FieldDescription

    secretName

    string

    Refers to the Secret object that contains the connection credential.

    usernameKey

    string

    Specifies the map key of the user in the connection credential secret.

    passwordKey

    string

    Specifies the map key of the password in the connection credential secret. This password will be saved in the backup annotation for full backup. You can use the environment variable DP_ENCRYPTION_KEY to specify encryption key.

    hostKey

    string

    (Optional)

    Specifies the map key of the host in the connection credential secret.

    portKey

    string

    (Optional)

    Specifies the map key of the port in the connection credential secret.

    ContainerPort

    (Appears on:BackupTarget, TargetInstance)

    FieldDescription

    containerName

    string

    Specifies the name of container with the port.

    portName

    string

    Specifies the port name.

    DataRestorePolicy (string alias)

    (Appears on:RequiredPolicyForAllPodSelection)

    ValueDescription

    "OneToMany"

    "OneToOne"

    EncryptionConfig

    (Appears on:BackupPolicySpec, BackupStatus)

    EncryptionConfig defines the parameters for encrypting backup data.

    FieldDescription

    algorithm

    string

    Specifies the encryption algorithm. Currently supported algorithms are:

    • AES-128-CFB

    • AES-192-CFB

    • AES-256-CFB

    passPhraseSecretKeyRef

    Kubernetes core/v1.SecretKeySelector

    Selects the key of a secret in the current namespace, the value of the secret is used as the encryption key.

    EnvVar

    (Appears on:BackupMethodTPL)

    FieldDescription

    name

    string

    Specifies the environment variable key.

    value

    string

    (Optional)

    Specifies the environment variable value.

    valueFrom

    ValueFrom

    (Optional)

    Specifies the source used to determine the value of the environment variable. Cannot be used if value is not empty.

    ExecAction

    (Appears on:ReadyConfig)

    FieldDescription

    target

    ExecActionTarget

    (Optional)

    Defines the pods that need to be executed for the exec action. Execution will occur on all pods that meet the conditions.

    ExecActionSpec

    (Appears on:ActionSpec)

    ExecActionSpec is an action that uses the pod exec API to execute a command in a container in a pod.

    FieldDescription

    container

    string

    (Optional)

    Specifies the container within the pod where the command should be executed. If not specified, the first container in the pod is used by default.

    command

    []string

    Defines the command and arguments to be executed.

    onError

    ActionErrorMode

    (Optional)

    Indicates how to behave if an error is encountered during the execution of this action.

    timeout

    Kubernetes meta/v1.Duration

    (Optional)

    Specifies the maximum duration to wait for the hook to complete before considering the execution a failure.

    ExecActionTarget

    (Appears on:ExecAction)

    FieldDescription

    podSelector

    Kubernetes meta/v1.LabelSelector

    Executes kubectl in all selected pods.

    IncludeResource

    (Appears on:RestoreKubeResources)

    FieldDescription

    groupResource

    string

    labelSelector

    Kubernetes meta/v1.LabelSelector

    (Optional)

    Selects the specified resource for recovery by label.

    JobAction

    (Appears on:ReadyConfig)

    FieldDescription

    requiredPolicyForAllPodSelection

    RequiredPolicyForAllPodSelection

    Specifies the restore policy, which is required when the pod selection strategy for the source target is ‘All’. This field is ignored if the pod selection strategy is ‘Any’. optional

    target

    JobActionTarget

    Defines the pods that needs to be executed for the job action.

    JobActionSpec

    (Appears on:ActionSpec, BackupDataActionSpec, RestoreActionSpec)

    JobActionSpec is an action that creates a Kubernetes Job to execute a command.

    FieldDescription

    BaseJobActionSpec

    BaseJobActionSpec

    (Members of BaseJobActionSpec are embedded into this type.)

    runOnTargetPodNode

    bool

    (Optional)

    Determines whether to run the job workload on the target pod node. If the backup container needs to mount the target pod’s volumes, this field should be set to true. Otherwise, the target pod’s volumes will be ignored.

    onError

    ActionErrorMode

    (Optional)

    Indicates how to behave if an error is encountered during the execution of this action.

    JobActionTarget

    (Appears on:JobAction)

    FieldDescription

    podSelector

    PodSelector

    Selects one of the pods, identified by labels, to build the job spec. This includes mounting required volumes and injecting built-in environment variables of the selected pod.

    volumeMounts

    []Kubernetes core/v1.VolumeMount

    (Optional)

    Defines which volumes of the selected pod need to be mounted on the restoring pod.

    KubeResources

    (Appears on:BackupTarget)

    KubeResources defines the kubernetes resources to back up.

    FieldDescription

    selector

    Kubernetes meta/v1.LabelSelector

    A metav1.LabelSelector to filter the target kubernetes resources that need to be backed up. If not set, will do not back up any kubernetes resources.

    included

    []string

    (Optional)

    included is a slice of namespaced-scoped resource type names to include in the kubernetes resources. The default value is empty.

    excluded

    []string

    (Optional)

    excluded is a slice of namespaced-scoped resource type names to exclude in the kubernetes resources. The default value is empty.

    ParameterPair

    (Appears on:BackupSpec, RestoreSpec, SchedulePolicy)

    FieldDescription

    name

    string

    Represents the name of the parameter.

    value

    string

    Represents the parameter values.

    ParametersSchema

    (Appears on:StorageProviderSpec)

    ParametersSchema describes the parameters needed for a certain storage.

    FieldDescription

    openAPIV3Schema

    Kubernetes api extensions v1.JSONSchemaProps

    (Optional)

    Defines the parameters in OpenAPI V3.

    credentialFields

    []string

    (Optional)

    Defines which parameters are credential fields, which need to be handled specifically. For instance, these should be stored in a Secret instead of a ConfigMap.

    Phase (string alias)

    (Appears on:ActionSetStatus, BackupPolicyStatus, BackupPolicyTemplateStatus)

    Phase defines the BackupPolicy and ActionSet CR .status.phase

    ValueDescription

    "Available"

    "Unavailable"

    PodSelectionStrategy (string alias)

    (Appears on:PodSelector, TargetInstance)

    PodSelectionStrategy specifies the strategy to select when multiple pods are selected for backup target

    ValueDescription

    "All"

    PodSelectionStrategyAll selects all pods that match the labelsSelector.

    "Any"

    PodSelectionStrategyAny selects any one pod that match the labelsSelector.

    PodSelector

    (Appears on:BackupTarget, JobActionTarget)

    FieldDescription

    LabelSelector

    Kubernetes meta/v1.LabelSelector

    (Members of LabelSelector are embedded into this type.)

    labelsSelector is the label selector to filter the target pods.

    fallbackLabelSelector

    Kubernetes meta/v1.LabelSelector

    (Optional)

    fallbackLabelSelector is used to filter available pods when the labelSelector fails. This only takes effect when the strategy field below is set to Any.

    strategy

    PodSelectionStrategy

    Specifies the strategy to select the target pod when multiple pods are selected. Valid values are:

    • Any: select any one pod that match the labelsSelector.

    • All: select all pods that match the labelsSelector. The backup data for the current pod will be stored in a subdirectory named after the pod.

    useParentSelectedPods

    bool

    (Optional)

    UseParentSelectedPods indicates whether to use the pods selected by the parent for backup. If set to true, the backup will use the same pods selected by the parent. And only takes effect when the ‘strategy’ is set to ‘Any’.

    PrepareDataConfig

    (Appears on:RestoreSpec)

    FieldDescription

    requiredPolicyForAllPodSelection

    RequiredPolicyForAllPodSelection

    Specifies the restore policy, which is required when the pod selection strategy for the source target is ‘All’. This field is ignored if the pod selection strategy is ‘Any’. optional

    dataSourceRef

    VolumeConfig

    (Optional)

    Specifies the configuration when using persistentVolumeClaim.spec.dataSourceRef method for restoring. Describes the source volume of the backup targetVolumes and the mount path in the restoring container.

    volumeClaims

    []RestoreVolumeClaim

    (Optional)

    Defines the persistent Volume claims that need to be restored and mounted together into the restore job. These persistent Volume claims will be created if they do not exist.

    volumeClaimsTemplate

    RestoreVolumeClaimsTemplate

    (Optional)

    Defines a template to build persistent Volume claims that need to be restored. These claims will be created in an orderly manner based on the number of replicas or reused if they already exist.

    volumeClaimRestorePolicy

    VolumeClaimRestorePolicy

    Defines restore policy for persistent volume claim. Supported policies are as follows:

    • Parallel: parallel recovery of persistent volume claim.

    • Serial: restore the persistent volume claim in sequence, and wait until the previous persistent volume claim is restored before restoring a new one.

    schedulingSpec

    SchedulingSpec

    (Optional)

    Specifies the scheduling spec for the restoring pod.

    ReadinessProbe

    (Appears on:ReadyConfig)

    FieldDescription

    initialDelaySeconds

    int

    (Optional)

    Specifies the number of seconds after the container has started before the probe is initiated.

    timeoutSeconds

    int

    (Optional)

    Specifies the number of seconds after which the probe times out. The default value is 30 seconds, and the minimum value is 1.

    periodSeconds

    int

    (Optional)

    Specifies how often (in seconds) to perform the probe. The default value is 5 seconds, and the minimum value is 1.

    exec

    ReadinessProbeExecAction

    Specifies the action to take.

    ReadinessProbeExecAction

    (Appears on:ReadinessProbe)

    FieldDescription

    image

    string

    Refers to the container image.

    command

    []string

    Refers to the container command.

    ReadyConfig

    (Appears on:RestoreSpec)

    FieldDescription

    jobAction

    JobAction

    (Optional)

    Specifies the configuration for a job action.

    execAction

    ExecAction

    (Optional)

    Specifies the configuration for an exec action.

    connectionCredential

    ConnectionCredential

    (Optional)

    Defines the credential template used to create a connection credential.

    readinessProbe

    ReadinessProbe

    (Optional)

    Defines a periodic probe of the service readiness. The controller will perform postReadyHooks of BackupScript.spec.restore after the service readiness when readinessProbe is configured.

    RequiredPolicyForAllPodSelection

    (Appears on:JobAction, PrepareDataConfig)

    FieldDescription

    dataRestorePolicy

    DataRestorePolicy

    Specifies the data restore policy. Options include:

    • OneToMany: Enables restoration of all volumes from a single data copy of the original target instance. The ‘sourceOfOneToMany’ field must be set when using this policy.
    • OneToOne: Restricts data restoration such that each data piece can only be restored to a single target instance. This is the default policy. When the number of target instances specified for restoration surpasses the count of original backup target instances.

    sourceOfOneToMany

    SourceOfOneToMany

    Specifies the name of the source target pod. This field is mandatory when the DataRestorePolicy is configured to ‘OneToMany’.

    RestoreActionSpec

    (Appears on:ActionSetSpec)

    RestoreActionSpec defines how to restore data.

    FieldDescription

    prepareData

    JobActionSpec

    (Optional)

    Specifies the action required to prepare data for restoration.

    postReady

    []ActionSpec

    (Optional)

    Specifies the actions that should be executed after the data has been prepared and is ready for restoration.

    baseBackupRequired

    bool

    (Optional)

    Determines if a base backup is required during restoration.

    withParameters

    []string

    (Optional)

    Specifies the parameters used by the restore action

    RestoreActionStatus (string alias)

    (Appears on:RestoreStatusAction)

    RestoreActionStatus the status of restore action.

    ValueDescription

    "Completed"

    "Failed"

    "Processing"

    RestoreKubeResources

    (Appears on:RestoreSpec)

    FieldDescription

    included

    []IncludeResource

    (Optional)

    Restores the specified resources.

    RestorePhase (string alias)

    (Appears on:RestoreStatus)

    RestorePhase The current phase. Valid values are Running, Completed, Failed, AsDataSource.

    ValueDescription

    "AsDataSource"

    "Completed"

    "Failed"

    "Running"

    RestoreSpec

    (Appears on:Restore)

    RestoreSpec defines the desired state of Restore

    FieldDescription

    backup

    BackupRef

    Specifies the backup to be restored. The restore behavior is based on the backup type:

    1. Full: will be restored the full backup directly.

    2. Incremental: will be restored sequentially from the most recent full backup of this incremental backup.

    3. Differential: will be restored sequentially from the parent backup of the differential backup.

    4. Continuous: will find the most recent full backup at this time point and the continuous backups after it to restore.

    restoreTime

    string

    (Optional)

    Specifies the point in time for restoring.

    resources

    RestoreKubeResources

    (Optional)

    Restores the specified resources of Kubernetes.

    prepareDataConfig

    PrepareDataConfig

    (Optional)

    Configuration for the action of “prepareData” phase, including the persistent volume claims that need to be restored and scheduling strategy of temporary recovery pod.

    serviceAccountName

    string

    (Optional)

    Specifies the service account name needed for recovery pod.

    readyConfig

    ReadyConfig

    (Optional)

    Configuration for the action of “postReady” phase.

    env

    []Kubernetes core/v1.EnvVar

    (Optional)

    List of environment variables to set in the container for restore. These will be merged with the env of Backup and ActionSet.

    The priority of merging is as follows: Restore env > Backup env > ActionSet env.

    containerResources

    Kubernetes core/v1.ResourceRequirements

    (Optional)

    Specifies the required resources of restore job’s container.

    backoffLimit

    int32

    (Optional)

    Specifies the number of retries before marking the restore failed.

    parameters

    []ParameterPair

    (Optional)

    Specifies a list of name-value pairs representing parameters and their corresponding values. Parameters match the schema specified in the actionset.spec.parametersSchema

    RestoreStage (string alias)

    ValueDescription

    "postReady"

    "prepareData"

    RestoreStatus

    (Appears on:Restore)

    RestoreStatus defines the observed state of Restore

    FieldDescription

    phase

    RestorePhase

    (Optional)

    Represents the current phase of the restore.

    startTimestamp

    Kubernetes meta/v1.Time

    (Optional)

    Records the date/time when the restore started being processed.

    completionTimestamp

    Kubernetes meta/v1.Time

    (Optional)

    Records the date/time when the restore finished being processed.

    duration

    Kubernetes meta/v1.Duration

    (Optional)

    Records the duration of the restore execution. When converted to a string, the form is “1h2m0.5s”.

    actions

    RestoreStatusActions

    (Optional)

    Records all restore actions performed.

    conditions

    []Kubernetes meta/v1.Condition

    (Optional)

    Describes the current state of the restore API Resource, like warning.

    RestoreStatusAction

    (Appears on:RestoreStatusActions)

    FieldDescription

    name

    string

    Describes the name of the restore action based on the current backup.

    backupName

    string

    Describes which backup’s restore action belongs to.

    objectKey

    string

    Describes the execution object of the restore action.

    message

    string

    (Optional)

    Provides a human-readable message indicating details about the object condition.

    status

    RestoreActionStatus

    The status of this action.

    startTime

    Kubernetes meta/v1.Time

    (Optional)

    The start time of the restore job.

    endTime

    Kubernetes meta/v1.Time

    (Optional)

    The completion time of the restore job.

    RestoreStatusActions

    (Appears on:RestoreStatus)

    FieldDescription

    prepareData

    []RestoreStatusAction

    (Optional)

    Records the actions for the prepareData phase.

    postReady

    []RestoreStatusAction

    (Optional)

    Records the actions for the postReady phase.

    RestoreVolumeClaim

    (Appears on:PrepareDataConfig, RestoreVolumeClaimsTemplate)

    FieldDescription

    metadata

    Kubernetes meta/v1.ObjectMeta

    Specifies the standard metadata for the object. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

    Refer to the Kubernetes API documentation for the fields of the metadata field.

    volumeClaimSpec

    Kubernetes core/v1.PersistentVolumeClaimSpec

    Defines the desired characteristics of a persistent volume claim.

    VolumeConfig

    VolumeConfig

    (Members of VolumeConfig are embedded into this type.)

    Describes the source volume of the backup target volumes and the mount path in the restoring container. At least one must exist for volumeSource and mountPath.

    RestoreVolumeClaimsTemplate

    (Appears on:PrepareDataConfig)

    FieldDescription

    templates

    []RestoreVolumeClaim

    Contains a list of volume claims.

    replicas

    int32

    Specifies the replicas of persistent volume claim that need to be created and restored. The format of the created claim name is $(template-name)-$(index).

    startingIndex

    int32

    Specifies the starting index for the created persistent volume claim according to the template. The minimum value is 0.

    RetentionPeriod (string alias)

    (Appears on:BackupSpec, SchedulePolicy)

    RetentionPeriod represents a duration in the format “1y2mo3w4d5h6m”, where y=year, mo=month, w=week, d=day, h=hour, m=minute.

    RuntimeSettings

    (Appears on:BackupMethod, BackupMethodTPL)

    FieldDescription

    resources

    Kubernetes core/v1.ResourceRequirements

    (Optional)

    Specifies the resource required by container. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

    SchedulePhase (string alias)

    (Appears on:ScheduleStatus)

    SchedulePhase represents the phase of a schedule.

    ValueDescription

    "Failed"

    "Running"

    SchedulePolicy

    (Appears on:BackupPolicyTemplateSpec, BackupScheduleSpec)

    FieldDescription

    enabled

    bool

    (Optional)

    Specifies whether the backup schedule is enabled or not.

    name

    string

    (Optional)

    Specifies the name of the schedule. Names cannot be duplicated. If the name is empty, it will be considered the same as the value of the backupMethod below.

    backupMethod

    string

    Specifies the backup method name that is defined in backupPolicy.

    cronExpression

    string

    Specifies the cron expression for the schedule. The timezone is in UTC. see https://en.wikipedia.org/wiki/Cron.

    retentionPeriod

    RetentionPeriod

    (Optional)

    Determines the duration for which the backup should be kept. KubeBlocks will remove all backups that are older than the RetentionPeriod. For example, RetentionPeriod of 30d will keep only the backups of last 30 days. Sample duration format:

    • years: 2y

    • months: 6mo

    • days: 30d

    • hours: 12h

    • minutes: 30m

    You can also combine the above durations. For example: 30d12h30m

    parameters

    []ParameterPair

    (Optional)

    Specifies a list of name-value pairs representing parameters and their corresponding values. Parameters match the schema specified in the actionset.spec.parametersSchema

    ScheduleStatus

    (Appears on:BackupScheduleStatus)

    ScheduleStatus represents the status of each schedule.

    FieldDescription

    phase

    SchedulePhase

    (Optional)

    Describes the phase of the schedule.

    failureReason

    string

    (Optional)

    Represents an error that caused the backup to fail.

    lastScheduleTime

    Kubernetes meta/v1.Time

    (Optional)

    Records the last time the backup was scheduled.

    lastSuccessfulTime

    Kubernetes meta/v1.Time

    (Optional)

    Records the last time the backup was successfully completed.

    SchedulingSpec

    (Appears on:PrepareDataConfig)

    FieldDescription

    tolerations

    []Kubernetes core/v1.Toleration

    (Optional)

    Specifies the tolerations for the restoring pod.

    nodeSelector

    map[string]string

    (Optional)

    Defines a selector which must be true for the pod to fit on a node. The selector must match a node’s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

    nodeName

    string

    (Optional)

    Specifies a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.

    affinity

    Kubernetes core/v1.Affinity

    (Optional)

    Contains a group of affinity scheduling rules. Refer to https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

    topologySpreadConstraints

    []Kubernetes core/v1.TopologySpreadConstraint

    (Optional)

    Describes how a group of pods ought to spread across topology domains. The scheduler will schedule pods in a way which abides by the constraints. Refer to https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/

    schedulerName

    string

    (Optional)

    Specifies the scheduler to dispatch the pod. If not specified, the pod will be dispatched by the default scheduler.

    SourceOfOneToMany

    (Appears on:RequiredPolicyForAllPodSelection)

    FieldDescription

    targetPodName

    string

    Specifies the name of the source target pod.

    StorageProviderPhase (string alias)

    (Appears on:StorageProviderStatus)

    StorageProviderPhase defines phases of a StorageProvider.

    ValueDescription

    "NotReady"

    StorageProviderNotReady indicates that the StorageProvider is not ready, usually because the specified CSI driver is not yet installed.

    "Ready"

    StorageProviderReady indicates that the StorageProvider is ready for use.

    StorageProviderSpec

    (Appears on:StorageProvider)

    StorageProviderSpec defines the desired state of StorageProvider.

    FieldDescription

    csiDriverName

    string

    (Optional)

    Specifies the name of the CSI driver used to access remote storage. This field can be empty, it indicates that the storage is not accessible via CSI.

    csiDriverSecretTemplate

    string

    (Optional)

    A Go template that used to render and generate k8s.io/api/core/v1.Secret resources for a specific CSI driver. For example, accessKey and secretKey needed by CSI-S3 are stored in this Secret resource.

    storageClassTemplate

    string

    (Optional)

    A Go template utilized to render and generate kubernetes.storage.k8s.io.v1.StorageClass resources. The `StorageClass’ created by this template is aimed at using the CSI driver.

    persistentVolumeClaimTemplate

    string

    (Optional)

    A Go template that renders and generates k8s.io/api/core/v1.PersistentVolumeClaim resources. This PVC can reference the StorageClass created from storageClassTemplate, allowing Pods to access remote storage by mounting the PVC.

    datasafedConfigTemplate

    string

    (Optional)

    A Go template used to render and generate k8s.io/api/core/v1.Secret. This Secret involves the configuration details required by the datasafed tool to access remote storage. For example, the Secret should contain endpoint, bucket, ‘region’, ‘accessKey’, ‘secretKey’, or something else for S3 storage. This field can be empty, it means this kind of storage is not accessible via the datasafed tool.

    parametersSchema

    ParametersSchema

    (Optional)

    Describes the parameters required for storage. The parameters defined here can be referenced in the above templates, and kbcli uses this definition for dynamic command-line parameter parsing.

    StorageProviderStatus

    (Appears on:StorageProvider)

    StorageProviderStatus defines the observed state of StorageProvider.

    FieldDescription

    phase

    StorageProviderPhase

    The phase of the StorageProvider. Valid phases are NotReady and Ready.

    conditions

    []Kubernetes meta/v1.Condition

    (Optional)

    Describes the current state of the StorageProvider.

    SyncProgress

    (Appears on:BackupDataActionSpec)

    FieldDescription

    enabled

    bool

    (Optional)

    Determines if the backup progress should be synchronized. If set to true, a sidecar container will be instantiated to synchronize the backup progress with the Backup Custom Resource (CR) status.

    intervalSeconds

    int32

    (Optional)

    Defines the interval in seconds for synchronizing the backup progress.

    TargetInstance

    (Appears on:BackupMethodTPL, BackupPolicyTemplateSpec)

    FieldDescription

    role

    string

    Specifies the role to select one or more replicas for backup.

    • If no replica with the specified role exists, the backup task will fail. Special case: If there is only one replica in the cluster, it will be used for backup, even if its role differs from the specified one. For example, if you specify backing up on a secondary replica, but the cluster is single-node with only one primary replica, the primary will be used for backup. Future versions will address this special case using role priorities.

    • If multiple replicas satisfy the specified role, the choice (Any or All) will be made according to the strategy field below.

    fallbackRole

    string

    (Optional)

    Specifies the fallback role to select one replica for backup, this only takes effect when the strategy field below is set to Any.

    account

    string

    (Optional)

    If backupPolicy.componentDefs is set, this field is required to specify the system account name. This account must match one listed in componentDefinition.spec.systemAccounts[*].name. The corresponding secret created by this account is used to connect to the database.

    strategy

    PodSelectionStrategy

    (Optional)

    Specifies the PodSelectionStrategy to use when multiple pods are selected for the backup target. Valid values are:

    • Any: Selects any one pod that matches the labelsSelector.

    • All: Selects all pods that match the labelsSelector.

    useParentSelectedPods

    bool

    (Optional)

    UseParentSelectedPods indicates whether to use the pods selected by the parent for backup. If set to true, the backup will use the same pods selected by the parent. And only takes effect when the ‘strategy’ is set to ‘Any’.

    containerPort

    ContainerPort

    (Optional)

    Specifies the container port in the target pod. If not specified, the first container and its first port will be used.

    TargetVolumeInfo

    (Appears on:BackupMethod, BackupMethodTPL)

    TargetVolumeInfo specifies the volumes and their mounts of the targeted application that should be mounted in backup workload.

    FieldDescription

    volumes

    []string

    (Optional)

    Specifies the list of volumes of targeted application that should be mounted on the backup workload.

    volumeMounts

    []Kubernetes core/v1.VolumeMount

    (Optional)

    Specifies the mount for the volumes specified in volumes section.

    ValueFrom

    (Appears on:EnvVar)

    FieldDescription

    versionMapping

    []VersionMapping

    (Optional)

    Determine the appropriate version of the backup tool image from service version.

    VersionMapping

    (Appears on:ValueFrom)

    FieldDescription

    serviceVersions

    []string

    Represents an array of the service version that can be mapped to the appropriate value. Each name in the list can represent an exact name, a name prefix, or a regular expression pattern.

    For example:

    • “8.0.33”: Matches the exact name “8.0.33”

    • “8.0”: Matches all names starting with “8.0”

    • ”^8.0.\d{1,2}$“: Matches all names starting with “8.0.” followed by one or two digits.

    mappedValue

    string

    Specifies a mapping value based on service version. Typically used to set up the tools image required for backup operations.

    VolumeClaimRestorePolicy (string alias)

    (Appears on:PrepareDataConfig)

    VolumeClaimRestorePolicy defines restore policy for persistent volume claim. Supported policies are as follows:

    1. Parallel: parallel recovery of persistent volume claim.

    2. Serial: restore the persistent volume claim in sequence, and wait until the previous persistent volume claim is restored before restoring a new one.

    ValueDescription

    "Parallel"

    "Serial"

    VolumeConfig

    (Appears on:PrepareDataConfig, RestoreVolumeClaim)

    FieldDescription

    volumeSource

    string

    (Optional)

    Describes the volume that will be restored from the specified volume of the backup targetVolumes. This is required if the backup uses a volume snapshot.

    mountPath

    string

    (Optional)

    Specifies the path within the restoring container at which the volume should be mounted.

    VolumeSnapshotStatus

    (Appears on:ActionStatus, BackupStatus)

    FieldDescription

    name

    string

    (Optional)

    The name of the volume snapshot.

    contentName

    string

    (Optional)

    The name of the volume snapshot content.

    volumeName

    string

    (Optional)

    The name of the volume.

    size

    string

    (Optional)

    The size of the volume snapshot.

    targetName

    string

    Associates this volumeSnapshot with its corresponding target.


    Generated with gen-crd-api-reference-docs