CouchbaseReplication Resource

    The CouchbaseReplication resource represents a Couchbase-to-Couchbase, XDCR replication stream from a source bucket to a destination bucket. This provides off-site backup, migration, and disaster recovery.

    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.):

    couchbasereplications.apiVersion

    Constraints

    Type: string

    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.

    couchbasereplications.explicitMapping

    Constraints

    Type: object

    Description

    The explicit mappings to use for replication which are optional. For Scopes and Collection replication support we can specify a set of implicit and explicit mappings to use. If none is specified then it is assumed to be existing bucket level replication. https://docs.couchbase.com/server/current/learn/clusters-and-availability/xdcr-with-scopes-and-collections.html#explicit-mapping.

    couchbasereplications.explicitMapping.allowRules

    Constraints

    Type: []object

    Description

    The list of explicit replications to carry out including any nested implicit replications: specifying a scope implicitly replicates all collections within it. There should be no duplicates, including more-specific duplicates, e.g. if you specify replication of a scope then you can only deny replication of collections within it.

    couchbasereplications.explicitMapping.allowRules.sourceKeyspace

    Constraints

    Required

    Type: object

    Description

    The source keyspace: where to replicate from. Source and target must match whether they have a collection or not, i.e. you cannot replicate from a scope to a collection.

    couchbasereplications.explicitMapping.allowRules.sourceKeyspace.collection

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    The optional collection within the scope. May be empty to just work at scope level.

    couchbasereplications.explicitMapping.allowRules.sourceKeyspace.scope

    Constraints

    Required

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    The scope to use.

    couchbasereplications.explicitMapping.allowRules.targetKeyspace

    Constraints

    Required

    Type: object

    Description

    The target keyspace: where to replicate to. Source and target must match whether they have a collection or not, i.e. you cannot replicate from a scope to a collection.

    couchbasereplications.explicitMapping.allowRules.targetKeyspace.collection

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    The optional collection within the scope. May be empty to just work at scope level.

    couchbasereplications.explicitMapping.allowRules.targetKeyspace.scope

    Constraints

    Required

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    The scope to use.

    couchbasereplications.explicitMapping.denyRules

    Constraints

    Type: []object

    Description

    The list of explicit replications to prevent including any nested implicit denials: specifying a scope implicitly denies all collections within it. There should be no duplicates, including more-specific duplicates, e.g. if you specify denial of replication of a scope then you can only specify replication of collections within it.

    couchbasereplications.explicitMapping.denyRules.sourceKeyspace

    Constraints

    Required

    Type: object

    Description

    The source keyspace: where to block replication from.

    couchbasereplications.explicitMapping.denyRules.sourceKeyspace.collection

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    The optional collection within the scope. May be empty to just work at scope level.

    couchbasereplications.explicitMapping.denyRules.sourceKeyspace.scope

    Constraints

    Required

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    The scope to use.

    couchbasereplications.kind

    Constraints

    Type: string

    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.

    couchbasereplications.metadata

    Constraints

    Required

    Type: object

    Description

    Standard object metadata as defined for all Kubernetes types.

    For additional details see the Kubernetes reference documentation.

    couchbasereplications.metadata.name

    Constraints

    Type: string

    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.

    couchbasereplications.metadata.namespace

    Constraints

    Type: string

    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.

    couchbasereplications.metadata.labels

    Constraints

    Type: map[string]string

    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.

    couchbasereplications.metadata.annotations

    Constraints

    Type: map[string]string

    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.

    couchbasereplications.spec

    Constraints

    Required

    Type: object

    Description

    CouchbaseReplicationSpec allows configuration of an XDCR replication.

    couchbasereplications.spec.bucket

    Constraints

    Required

    Type: string

    Maximum Length: 100

    Pattern (Regular Expression): ^[a-zA-Z0-9-_%\.]{1,100}$

    Description

    Bucket is the source bucket to replicate from. This refers to the Couchbase bucket name, not the resource name of the bucket. A bucket with this name must be defined on this cluster. Legal bucket names have a maximum length of 100 characters and may be composed of any character from "a-z", "A-Z", "0-9" and "-_%\.".

    couchbasereplications.spec.checkpointInterval

    Constraints

    Type: integer

    Minimum: 60

    Maximum: 14400

    Description

    CheckpointInterval is the interval in seconds between checkpoints.

    couchbasereplications.spec.collectionsOSOMode

    Constraints

    Type: boolean

    Description

    CollectionsOSOMode optimizes for out-of-order mutations streaming (performance toggle). This field defaults to true.

    couchbasereplications.spec.compressionType

    Constraints

    Type: string

    Enumerations: Auto, None

    Description

    CompressionType is the compression used for XDCR traffic.

    couchbasereplications.spec.conflictLogging

    Constraints

    Type: object

    Description

    ConflictLogging is the configuration for conflict logging. This feature is available in Couchbase Server 8.0.0 and later.

    couchbasereplications.spec.conflictLogging.enabled

    Constraints

    Type: boolean

    Description

    Enabled defines whether conflict logging is enabled.

    couchbasereplications.spec.conflictLogging.logCollection

    Constraints

    Type: object

    Description

    LogCollection defines the collection to log conflicts to.

    couchbasereplications.spec.conflictLogging.logCollection.bucket

    Constraints

    Type: string

    Maximum Length: 100

    Pattern (Regular Expression): ^[a-zA-Z0-9-_%\.]{1,100}$

    Description

    Bucket defines the bucket to log conflicts to.

    couchbasereplications.spec.conflictLogging.logCollection.collection

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Collection defines the collection to log conflicts to.

    couchbasereplications.spec.conflictLogging.logCollection.scope

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Scope defines the scope to log conflicts to.

    couchbasereplications.spec.conflictLogging.loggingRules

    Constraints

    Type: object

    Description

    LoggingRules defines the list of logging rules for conflict logging. The rules can be scoped to a specific scope or a specific collection in a scope. The rules can disable logging, log to the default collection defined at spec.conflictLogging.logCollection, or log to a different collection.

    couchbasereplications.spec.conflictLogging.loggingRules.customCollectionRules

    Constraints

    Type: []object

    Description

    CustomCollectionRules defines the rules for logging to a different collection.

    couchbasereplications.spec.conflictLogging.loggingRules.customCollectionRules.collection

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Collection defines the collection to apply the rule to.

    couchbasereplications.spec.conflictLogging.loggingRules.customCollectionRules.logCollection

    Constraints

    Required

    Type: object

    Description

    LogCollection defines the collection to log conflicts to.

    couchbasereplications.spec.conflictLogging.loggingRules.customCollectionRules.logCollection.bucket

    Constraints

    Type: string

    Maximum Length: 100

    Pattern (Regular Expression): ^[a-zA-Z0-9-_%\.]{1,100}$

    Description

    Bucket defines the bucket to log conflicts to.

    couchbasereplications.spec.conflictLogging.loggingRules.customCollectionRules.logCollection.collection

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Collection defines the collection to log conflicts to.

    couchbasereplications.spec.conflictLogging.loggingRules.customCollectionRules.logCollection.scope

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Scope defines the scope to log conflicts to.

    couchbasereplications.spec.conflictLogging.loggingRules.customCollectionRules.scope

    Constraints

    Required

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Scope defines the scope to apply the rule to.

    couchbasereplications.spec.conflictLogging.loggingRules.defaultCollectionRules

    Constraints

    Type: []object

    Description

    DefaultCollectionRules defines the rules for logging to the default collection.

    couchbasereplications.spec.conflictLogging.loggingRules.defaultCollectionRules.collection

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Collection defines the collection to apply the rule to.

    couchbasereplications.spec.conflictLogging.loggingRules.defaultCollectionRules.scope

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Scope defines the scope to apply the rule to.

    couchbasereplications.spec.conflictLogging.loggingRules.noLoggingRules

    Constraints

    Type: []object

    Description

    NoLoggingRules defines the rules for disabling logging to for conflicts in a specific scope or collection.

    couchbasereplications.spec.conflictLogging.loggingRules.noLoggingRules.collection

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Collection defines the collection to apply the rule to.

    couchbasereplications.spec.conflictLogging.loggingRules.noLoggingRules.scope

    Constraints

    Type: string

    Minimum Length: 1

    Maximum Length: 251

    Pattern (Regular Expression): ^(default|[a-zA-Z0-9\-][a-zA-Z0-9\-%]{0,250})$

    Description

    Scope defines the scope to apply the rule to.

    couchbasereplications.spec.desiredLatency

    Constraints

    Type: integer

    Description

    DesiredLatency is the target latency (ms) for high-priority replications. This field defaults to 50.

    couchbasereplications.spec.docBatchSizeKb

    Constraints

    Type: integer

    Minimum: 10

    Maximum: 10000

    Description

    DocBatchSizeKb is the size (KB) of document batches sent.

    couchbasereplications.spec.failureRestartInterval

    Constraints

    Type: integer

    Minimum: 1

    Maximum: 300

    Description

    FailureRestartInterval is the seconds to wait before restarting after a failure.

    couchbasereplications.spec.filterBinary

    Constraints

    Type: boolean

    Description

    FilterBinary specifies whether binary documents should be replicated. The value can be true or false (the default). If the value is true, binary documents are not replicated, regardless of whether a filterExpression is applied. If the value is false: The behavior is identical to that of all Couchbase-Server versions prior to 7.2.1 (with the exception of 7.1.5), where the filterBinary flag did not exist. If a filter expression is not provided, binary documents are replicated. If a filter expression is provided, and the expression refers only to either the document’s key, or its xattr, or to both, the expression is applied, and the document is replicated if the expression permits. If a filter expression is provided, and the expression refers only to the document’s body, the document is replicated. If a filter expression is provided, and the expression refers to the document’s key, or its xattr, or to both; and also refers to the document’s body; the document is not replicated (regardless of whether the key or xattr might appear to permit replication).

    couchbasereplications.spec.filterBypassExpiry

    Constraints

    Type: boolean

    Description

    FilterBypassExpiry when true, TTL is removed before replication.

    couchbasereplications.spec.filterBypassUncommittedTxn

    Constraints

    Type: boolean

    Description

    FilterBypassUncommittedTxn when true, documents with uncommitted txn xattrs are not replicated.

    couchbasereplications.spec.filterDeletion

    Constraints

    Type: boolean

    Description

    FilterDeletion when true, delete mutations are filtered out (not replicated).

    couchbasereplications.spec.filterExpiration

    Constraints

    Type: boolean

    Description

    FilterExpiration when true, expiry mutations are filtered out.

    couchbasereplications.spec.filterExpression

    Constraints

    Type: string

    Description

    FilterExpression is a filter expression to match against documents in the source bucket. Each document that produces a successful match is replicated.

    couchbasereplications.spec.filterSkipRestream

    Constraints

    Type: boolean

    Description

    FilterSkipRestream controls whether replication restarts after filterExpression changes. When false (default), replication restarts after filter changes. When true, continues without restart. Note: Server requires this field when filterExpression is set. If not specified, operator defaults to false.

    couchbasereplications.spec.hlvPruningWindowSec

    Constraints

    Type: integer

    Minimum: 1

    Description

    HlvPruningWindowSec is the HLV pruning window (sec) for hybrid logical vector conflict resolution.

    couchbasereplications.spec.jsFunctionTimeoutMs

    Constraints

    Type: integer

    Minimum: 1

    Description

    JSFunctionTimeoutMs is the timeout for JS custom conflict-resolution functions (ms).

    couchbasereplications.spec.logLevel

    Constraints

    Type: string

    Enumerations: Error, Info, Debug, Trace

    Description

    LogLevel is the logging verbosity for XDCR.

    couchbasereplications.spec.mergeFunctionMapping

    Constraints

    Type: map[string]string

    Description

    MergeFunctionMapping maps collection specifiers (scope.collection) to merge function names for custom conflict resolution. Nil values can be used to explicitly unset merge functions for specific collections.

    couchbasereplications.spec.mobile

    Constraints

    Type: string

    Enumerations: Off, Active

    Description

    Mobile enables mobile (Sync Gateway) active-active mode. This feature is available in Couchbase Server 7.6.4 and later.

    couchbasereplications.spec.networkUsageLimit

    Constraints

    Type: integer

    Minimum: 0

    Description

    NetworkUsageLimit is the upper limit for replication network usage (MB/s).

    couchbasereplications.spec.optimisticReplicationThreshold

    Constraints

    Type: integer

    Minimum: 0

    Maximum: 20971520

    Description

    OptimisticReplicationThreshold is the size threshold below which documents replicate optimistically.

    couchbasereplications.spec.paused

    Constraints

    Type: boolean

    Default: False

    Description

    PauseRequested indicates whether the replication has been issued a pause request.

    couchbasereplications.spec.priority

    Constraints

    Type: string

    Enumerations: High, Medium, Low

    Description

    Priority is the resource priority for replication streams.

    couchbasereplications.spec.remoteBucket

    Constraints

    Required

    Type: string

    Maximum Length: 100

    Pattern (Regular Expression): ^[a-zA-Z0-9-_%\.]{1,100}$

    Description

    RemoteBucket is the remote bucket name to synchronize to. This refers to the Couchbase bucket name, not the resource name of the bucket. Legal bucket names have a maximum length of 100 characters and may be composed of any character from "a-z", "A-Z", "0-9" and "-_%\.".

    couchbasereplications.spec.retryOnRemoteAuthErr

    Constraints

    Type: boolean

    Description

    RetryOnRemoteAuthErr defines whether to retry connections when remote auth fails.

    couchbasereplications.spec.retryOnRemoteAuthErrMaxWaitSec

    Constraints

    Type: integer

    Minimum: 1

    Description

    RetryOnRemoteAuthErrMaxWaitSec is the max wait seconds for retrying remote auth failures. Only effective if retryOnRemoteAuthErr is true.

    couchbasereplications.spec.sourceNozzlePerNode

    Constraints

    Type: integer

    Minimum: 1

    Maximum: 100

    Description

    SourceNozzlePerNode is the number of source nozzles (parallelism) per source node.

    couchbasereplications.spec.statsInterval

    Constraints

    Type: integer

    Minimum: 200

    Maximum: 600000

    Description

    StatsInterval is the interval for statistics updates (ms).

    couchbasereplications.spec.targetNozzlePerNode

    Constraints

    Type: integer

    Minimum: 1

    Maximum: 100

    Description

    TargetNozzlePerNode is the number of target nozzles per target node (parallelism).

    couchbasereplications.spec.workerBatchSize

    Constraints

    Type: integer

    Minimum: 500

    Maximum: 10000

    Description

    WorkerBatchSize is the number of mutations per worker batch.