CouchbaseBackup allows automatic backup of all data from a Couchbase cluster into persistent storage.
5 top-level fields, 1 required · last changed in Couchbase Operator 2.9.0
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
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
CouchbaseBackupSpec is allows the specification of how a Couchbase backup is configured, including when backups are performed, how long they are retained for, and where they are backed up to.
AutoScaling allows the volume size to be dynamically increased. When specified, the backup volume will start with an initial size as defined by `spec.size`, and increase as required.
IncrementPercent controls how much the volume is increased each time the threshold is exceeded, upto a maximum as defined by the limit. This field defaults to 20 if not specified.
Limit imposes a hard limit on the size we can autoscale to. When not specified no bounds are imposed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes
ThresholdPercent determines the point at which a volume is autoscaled. This represents the percentage of free space remaining on the volume, when less than this threshold, it will trigger a volume expansion. For example, if the volume is 100Gi, and the threshold 20%, then a resize will be triggered when the used capacity exceeds 80Gi, and free space is less than 20Gi. This field defaults to 20 if not specified.
Number of times a backup job should try to execute. The time between each attempt increases exponentially starting at 10s doubling each time and caps out at 6 minutes. Once it hits the BackoffLimit it will not run until the next scheduled job.
Number of hours to hold backups for, everything older will be deleted. More info: https://golang.org/pkg/time/#ParseDuration
Data allows control over what key-value/document data is included in the backup. By default, all data is included. Modifications to this field will only take effect on the next full backup.
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. Changes from this field will only takes effect on a full backup.
Include defines the buckets, scopes or collections that are included in the backup. When this field is set, it implies that by default nothing will be backed up, 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. Changes from this field will only takes effect on a full backup.
DefaultRecoveryMethod specifies how cbbackupmgr should recover from broken backup/restore attempts.
Env defines environment variables to be set on the backup container. These can be used to configure cbbackupmgr behavior via environment variables.
Name of the environment variable. Must be a C_IDENTIFIER.
Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".
Source for the environment variable's value. Cannot be used if value is not empty.
Selects a key of a ConfigMap.
The key to select.
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Specify whether the ConfigMap or its key must be defined
Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
Version of the schema the FieldPath is written in terms of, defaults to "v1".
Path of the field to select in the specified API version.
Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
Container name: required for volumes, optional for env vars
Specifies the output format of the exposed resources, defaults to "1"
Required: resource to select
Selects a key of a secret in the pod's namespace
The key of the secret to select from. Must be a valid secret key.
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Specify whether the Secret or its key must be defined
EphemeralVolume sets backup to use an ephemeral volume instead of a persistent volume. This is used when backing up to a remote cloud provider, where a persistent volume is not needed.
Amount of failed jobs to keep.
Full is the schedule on when to take full backups. Used in Full/Incremental and FullOnly backup strategies.
Schedule takes a cron schedule in string format.
Incremental is the schedule on when to take incremental backups. Used in Full/Incremental backup strategies.
Schedule takes a cron schedule in string format.
Number of hours to hold script logs for, everything older will be deleted. More info: https://golang.org/pkg/time/#ParseDuration
Merge is the schedule on when to merge incremental backups. Used in PeriodicMerge backup strategy.
Schedule takes a cron schedule in string format.
ObjectStore allows for backing up to a remote cloud storage.
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
The name of the secret, in this namespace, that contains the CA certificate for verification of a TLS endpoint The secret must have the key with the name "tls.crt"
The host/address of the custom object endpoint.
UseVirtualPath will force the AWS SDK to use the new virtual style paths which are often required by S3 compatible object stores.
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
URI is a reference to a remote object store. This is the prefix of the object store and the bucket name. i.e s3://bucket, az://bucket or gs://bucket.
Whether to allow the backup SDK to attempt to authenticate using the instance metadata api. If set, will override `CouchbaseCluster.spec.backup.useIAM`.
DEPRECATED - by spec.objectStore.uri Name of S3 bucket to backup to. If non-empty this overrides local backup.
Services allows control over what services are included in the backup. By default, all service data and metadata are included apart from users. Modifications to this field will only take effect on the next full backup.
Analytics enables the backup of analytics data. This field defaults to `true`.
BucketConfig enables the backup of bucket configuration. This field defaults to `true`.
BucketQuery enables the backup of query metadata for all buckets. This field defaults to `true`.
ClusterAnalytics enables the backup of cluster-wide analytics data, for example synonyms. This field defaults to `true`.
ClusterQuery enables the backup of cluster level query metadata. This field defaults to `true`.
Data enables the backup of key-value data/documents for all buckets. This can be further refined with the couchbasebackups.spec.data configuration. This field defaults to `true`.
Eventing enables the backup of eventing service metadata. This field defaults to `true`.
FTSAliases enables the backup of full-text search alias definitions. This field defaults to `true`.
FTSIndexes enables the backup of full-text search index definitions for all buckets. This field defaults to `true`.
GSIndexes enables the backup of global secondary index definitions for all buckets. This field defaults to `true`.
Users enables the backup of users including their roles and permissions. This is only available for Couchbase Server 7.6 and later. This field defaults to `false`.
Views enables the backup of view definitions for all buckets. This field defaults to `true`.
Size allows the specification of a backup persistent volume, when using volume based backup. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes
Name of StorageClass to use.
Strategy defines how to perform backups. `full_only` will only perform full backups, and you must define a schedule in the `spec.full` field. `full_incremental` will perform periodic full backups, and incremental backups in between. You must define full and incremental schedules in the `spec.full` and `spec.incremental` fields respectively. `periodic_merge` will first create an immediate full backup, after that, it will only take incremental backups and then merge them. You must define incremental and merge schedules in the `spec.incremental` and `spec.merge` fields respectively. The initial full backup will be retried based on spec.backoffLimit, if it reaches this limit without success, then the incremental, merge cycles won't run. Care should be taken to ensure full, incremental and merge schedules do not overlap, taking into account the backup time, as this will cause failures as the jobs attempt to mount the same backup volume. To cause a backup to occur immediately use `immediate_incremental` or `immediate_full` for incremental or full backups respectively. respectively. This field default to `full_incremental`. Info: https://docs.couchbase.com/server/current/backup-restore/cbbackupmgr-strategies.html
Amount of successful jobs to keep.
How many threads to use during the backup. This field defaults to 1.
Amount of time to elapse before a completed job is deleted.
CouchbaseBackupStatus provides status notifications about the Couchbase backup including when the last backup occurred, whether is succeeded or not, the run time of the backup and the size of the backup.
Location of Backup Archive.
Backups gives us a full list of all backups and their respective repository locations.
Full backup inside the repository.
Incremental backups inside the repository.
Name of the repository.
CapacityUsed tells us how much of the PVC we are using. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes
DEPRECATED - field may no longer be populated. Cronjob tells us which Cronjob the job belongs to.
Duration tells us how long the last backup took. More info: https://golang.org/pkg/time/#ParseDuration
Failed indicates whether the most recent backup has failed.
DEPRECATED - field may no longer be populated. Job tells us which job is running/ran last.
LastFailure tells us the time the last failed backup failed.
LastRun tells us the time the last backup job started.
LastSuccess gives us the time the last successful backup finished.
DEPRECATED - field may no longer be populated. Output reports useful information from the backup_script.
DEPRECATED - field may no longer be populated. Pod tells us which pod is running/ran last.
Repo is where we are currently performing operations.
Running indicates whether a backup is currently being performed.
Source: couchbase.crds.yaml
Changes to CouchbaseBackup (couchbase.com/v2) in each Couchbase Operator version, compared to the version before it.
2 properties have been added
4 properties have changed the description
Released · View CouchbaseBackup in 2.9.0
1 property has changed the description
Released · View CouchbaseBackup in 2.8.0
1 property has changed the description
Released · View CouchbaseBackup in 2.7.1
1 property has been added
The description of CouchbaseBackup has changed
46 properties have changed the description
Released · View CouchbaseBackup in 2.7.0
1 property has changed the description
Released · View CouchbaseBackup in 2.6.0
1 property has been added
Released · View CouchbaseBackup in 2.5.2
2 properties are no longer required
Released · View CouchbaseBackup in 2.4.2
3 properties have been added
1 property has changed the description
Released · View CouchbaseBackup in 2.4.0
CouchbaseBackup was already present in this version of Couchbase Operator, the oldest one on kubespec.dev
Released · View CouchbaseBackup in 2.3.1
No examples of CouchbaseBackup yet. Contribute one on GitHub.