CouchbaseBackup Resource

Once you have allowed the Autonomous Operator to manage and perform Automated Backup, you will need to create a CouchbaseBackup object to specify the timings and details of the backups.

A CouchbaseBackup object will spawn either 1 or 2 cronjobs that belong to that resource, and those cronjobs in turn will create the Kubernetes jobs which perform the backup jobs themselves.

The following YAML shows all possible fields that may be configured for a CouchbaseBackup. In this case the following YAML is completely valid.

All available CouchbaseBackup configuration parameters
apiVersion: couchbase.com/v2
kind: CouchbaseBackup
metadata:
  name: my-backup
  labels:
    cluster: my-cluster
spec:
  strategy: full_incremental
  full:
    schedule: "0 3 * * 0"
  incremental:
    schedule: "0 3 * * 1-6"
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 3
  backOffLimit: 2
  backupRetention: 24h
  logRetention: 24h
  size: 5Gi

Top-Level Definitions

The following are the top-level parameters that can be defined:

apiVersion: couchbase.com/v2
kind: CouchbaseBackup
metadata:
  name: my-backup
  labels:
    cluster: my-cluster

apiVersion

The apiVersion defines which version of the resource this configuration refers to.

Field rules: This field is required and must be set to couchbase.com/v2

kind

The kind defines the type of resource this configuration refers to.

Field rules: This field is required and must be set to CouchbaseBackup

metadata.name

The metadata name defines the name of the resource. The name must be unique for the kind defined.

Field rules: This field is required and must be unique as described above.

metadata.labels

The metadata labels allow the resource to be tagged so that it is only selected by specific CouchbaseCluster resources. Further details about resource selection can be found on the Couchbase Resources and RBAC page.

Field rules: This field is optional and must be a map of string key/value pairs.

spec

The following are parameters that may be set on the CouchbaseBackup:

spec:
  strategy: full_incremental
  full:
    schedule: "0 3 * * 0"
  incremental:
    schedule: "0 3 * * 1-6"
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 3
  backOffLimit: 2
  backupRetention: 24h
  logRetention: 24h
  size: 5Gi

spec.strategy

This field defines which backup strategy to use for Automated Backup. Currently we only support Full Only and Full/Incremental backup strategies. For more info please visit [link](google.com)'

Field rules: This field is required and must be either full_only or full_incremental.

spec.full.schedule

This field defines the schedule a user wants the Operator to perform a full backup of the cluster.

Field rules: This field is required for both strategies and must be a valid Cron schedule.

spec.incremental.schedule

This field defines the schedule a user wants the Operator to perform an incremental backup of the cluster.

Field rules: This field is only required for a full_incremental strategy and must be a valid Cron schedule.

spec.successfulJobsHistoryLimit

This field defines the amount of successful jobs to keep before Kubernetes starts deleting older ones.

Field rules: This field is optional and must be any non-negative integer. The default value is 3.

spec.failedJobsHistoryLimit

This field defines the amount of failed jobs to keep before Kubernetes starts deleting older ones.

Field rules: This field is optional and must be any non-negative integer. The default value is 5.

spec.backOffLimit

This field defines the amount of times one backup job will try to perform a backup. Once it has reached the backOffLimit the job will no longer run and the next attempted backup will occur at the next run of the cronjob.

Field rules: This field is optional and must be any non-negative integer. The default value is 2.

spec.backupRetention

This field defines the time period in which to retain existing backups. On each run of a backup job older backups outside this time frame are deleted.

Field rules: This field is optional and defaults to 720h (30 days). If specified it must contain a decimal number and a unit suffix such as s, m or h. The decimal number cannot be negative.

spec.logRetention

This field defines the time period in which to retain backup logs. Older logs outside this time frame are deleted. On each run of a backup job logging takes place which is stored on the Persistent Volume of the same name as the CouchbaseBackup object.

Field rules: This field is optional and defaults to 168h (7 days). If specified it must contain a decimal number and a unit suffix such as s, m or h. The decimal number cannot be negative.

spec.size

This field defines the size of the Persistent Volume to store backups and logs on.

Field rules: This field is optional and defaults to 20Gi. If specified the field must be a Kubernetes resource quantity.