CouchbaseBackupRestore Resource
CouchbaseBackupRestore allows the restoration of all Couchbase cluster data from a CouchbaseBackup resource.
The following is an example resource, depicting the overall structure and any defaults (consult the field reference for valid values for "empty" values, such as empty strings etc.):
apiVersion: v2
kind: CouchbaseBackupRestore
metadata:
name: ""
spec:
backoffLimit: 2
backup: ""
buckets:
data:
exclude:
- ""
filterKeys: ""
filterValues: ""
include:
- ""
map:
- source: ""
target: ""
end:
int: 0
str: ""
forceUpdates: false
logRetention: 168h
objectStore:
endpoint:
secret: ""
url: ""
useVirtualPath: false
secret: ""
uri: ""
useIAM: false
repo: ""
s3bucket: ""
services:
analytics: True
bucketConfig: false
bucketQuery: True
clusterAnalytics: True
clusterQuery: True
data: True
eventing: True
ftAlias: True
ftIndex: True
gsiIndex: True
views: True
stagingVolume:
size: 20Gi
storageClassName: ""
start:
int: 0
str: ""
threads: 1
ttlSecondsAfterFinished: 0
status:
archive: ""
backups:
- full: ""
incrementals:
- ""
name: ""
duration: ""
failed: false
job: ""
lastFailure: ""
lastRun: ""
lastSuccess: ""
output: ""
pod: ""
repo: ""
running: false
couchbasebackuprestores.apiVersion
Description
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
couchbasebackuprestores.kind
Description
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.
couchbasebackuprestores.metadata
Description
Standard object metadata as defined for all Kubernetes types.
For additional details see the Kubernetes reference documentation.
couchbasebackuprestores.metadata.name
Description
The name of a resource. This must be unique for the kind of resource within the namespace.
All resources must have a name.
The name may be omitted and metadata.generateName
used instead to generate a unique resource name.
For additional details on resource names, see the Kubernetes reference documentation.
couchbasebackuprestores.metadata.namespace
Description
The namespace the resource resides in. All resources reside in a namespace.
The namespace is optional and may be specified in YAML configuration to override the namespace supplied by kubectl
.
For additional details on namespaces, see the Kubernetes reference documentation.
couchbasebackuprestores.metadata.labels
Description
Labels allow resources to be labeled with key/value pairs of data. Labels are indexed and allow resources to be selected based upon specified labels.
Labels are relevant for certain types when using label selection within your resources.
For additional details on labels and selectors, see the Kubernetes reference documentation.
couchbasebackuprestores.metadata.annotations
Description
Annotations allow resources to be annotated with key/value pairs of data. Annotations are arbitrary, and not indexed, so cannot be used to select resources, however may be used to add context or accounting to your resources.
For additional details on annotations, see the Kubernetes reference documentation.
couchbasebackuprestores.spec
Description
CouchbaseBackupRestoreSpec allows the specification of data restoration to be configured. This includes the backup and repository to restore data from, and the time range of data to be restored.
couchbasebackuprestores.spec.data.exclude
Constraints
Type: []string
Minimum Items: 1
Pattern (Regular Expression): ^(?:[a-zA-Z0-9\-%]|\\.){1,100}(\._default(\._default)?|\.[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,29}(\.[a-zA-Z0-9\-][a-zA-Z0-9\-%_]{0,29})?)?$
Description
Exclude defines the buckets, scopes or collections that are excluded from the backup.
When this field is set, it implies that by default everything will be backed up, and data items can be explicitly excluded.
You may define an exclusion as a bucket — my-bucket
, a scope — my-bucket.my-scope
, or a collection — my-bucket.my-scope.my-collection
.
Buckets may contain periods, and therefore must be escaped — my\.bucket.my-scope
, as period is the separator used to delimit scopes and collections.
Excluded data cannot overlap e.g.
specifying my-bucket
and my-bucket.my-scope
is illegal.
This field cannot be used at the same time as included items.
couchbasebackuprestores.spec.data.include
Constraints
Type: []string
Minimum Items: 1
Pattern (Regular Expression): ^(?:[a-zA-Z0-9\-%]|\\.){1,100}(\._default(\._default)?|\.[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,29}(\.[a-zA-Z0-9\-][a-zA-Z0-9\-%_]{0,29})?)?$
Description
Include defines the buckets, scopes or collections that are included in the restore.
When this field is set, it implies that by default nothing will be restored, and data items must be explicitly included.
You may define an inclusion as a bucket — my-bucket
, a scope — my-bucket.my-scope
, or a collection — my-bucket.my-scope.my-collection
.
Buckets may contain periods, and therefore must be escaped — my\.bucket.my-scope
, as period is the separator used to delimit scopes and collections.
Included data cannot overlap e.g.
specifying my-bucket
and my-bucket.my-scope
is illegal.
This field cannot be used at the same time as excluded items.
couchbasebackuprestores.spec.data.map
Description
Map allows data items in the restore to be remapped to a different named container. Buckets can be remapped to other buckets e.g. "source=target", scopes and collections can be remapped to other scopes and collections within the same bucket only e.g. "bucket.scope=bucket.other" or "bucket.scope.collection=bucket.scope.other". Map sources may only be specified once, and may not overlap.
couchbasebackuprestores.spec.data.map.source
couchbasebackuprestores.spec.data.map.target
couchbasebackuprestores.spec.logRetention
Description
Number of hours to hold restore script logs for, everything older will be deleted. More info: https://golang.org/pkg/time/#ParseDuration.
couchbasebackuprestores.spec.objectStore.endpoint
Description
Endpoint contains the configuration for connecting to a custom Azure/S3/GCP compliant object store.
If set will override CouchbaseCluster.spec.backup.objectEndpoint
See https://docs.couchbase.com/server/current/backup-restore/cbbackupmgr-cloud.html#compatible-object-stores.
couchbasebackuprestores.spec.objectStore.secret
Description
ObjStoreSecret must contain two fields, access-key-id, secret-access-key and optionally either region or refresh-token. These correspond to the fields used by cbbackupmgr https://docs.couchbase.com/server/current/backup-restore/cbbackupmgr-backup.html#optional-2.
couchbasebackuprestores.spec.services.bucketConfig
Description
BucketConfig restores all bucket configuration settings. If you are restoring to cluster with managed buckets, then this option may conflict with existing bucket settings, and the results are undefined, so avoid use. This option is intended for use with unmanaged buckets. Note that bucket durability settings are not restored in versions less than and equal to 1.1.0, and will need to be manually applied. This field defaults to false.
couchbasebackuprestores.spec.stagingVolume.size
Constraints
Type: string
Default: 20Gi
Pattern (Regular Expression): ^(\+|-)?[0-9]+(\.[0-9]*)?)|(\.[0-9]+[KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]\*)?)|(\.[0-9]+))?$
Description
Size allows the specification of a staging volume. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes The ephemeral volume will only be used when restoring from a cloud provider, if the backup job was created using ephemeral storage. Otherwise the restore job will share a staging volume with the backup job.
couchbasebackuprestores.status
Description
CouchbaseBackupRestoreStatus provides status indications of a restore from backup. This includes whether or not the restore is running, whether the restore succeed or not, and the duration the restore took.
couchbasebackuprestores.status.duration
Description
Duration tells us how long the last restore took. More info: https://golang.org/pkg/time/#ParseDuration.