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.
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
orfull_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 ass
,m
orh
. 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 ass
,m
orh
. 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.