The CouchbaseScopeMigration resource represents the use of the special migration mapping within XDCR to take a filtered list from the default scope and collection of the source bucket, replicate it to named scopes and collections within the target bucket. The bucket-to-bucket replication cannot duplicate any used by the CouchbaseReplication resource, as these two types of replication are mutually exclusive between buckets. https://docs.couchbase.com/server/current/learn/clusters-and-availability/xdcr-with-scopes-and-collections.html#migration
5 top-level fields, 2 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
The migration mappings to use, should never be empty as that is just an implicit bucket-to-bucket replication then.
The migration mappings to use, should never be empty as that is just an implicit bucket-to-bucket replication then.
A filter to select from the source default scope and collection. Defaults to select everything in the default scope and collection.
The destination of our migration, must be a scope and collection.
The optional collection within the scope. May be empty to just work at scope level.
The scope to use.
CouchbaseReplicationSpec allows configuration of an XDCR replication.
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 "-_%\.".
CheckpointInterval is the interval in seconds between checkpoints.
CollectionsOSOMode optimizes for out-of-order mutations streaming (performance toggle). This field defaults to true.
CompressionType is the compression used for XDCR traffic.
ConflictLogging is the configuration for conflict logging. This feature is available in Couchbase Server 8.0.0 and later.
Enabled defines whether conflict logging is enabled.
LogCollection defines the collection to log conflicts to.
Bucket defines the bucket to log conflicts to.
Collection defines the collection to log conflicts to.
Scope defines the scope to log conflicts to.
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.
CustomCollectionRules defines the rules for logging to a different collection.
Collection defines the collection to apply the rule to.
LogCollection defines the collection to log conflicts to.
Bucket defines the bucket to log conflicts to.
Collection defines the collection to log conflicts to.
Scope defines the scope to log conflicts to.
Scope defines the scope to apply the rule to.
DefaultCollectionRules defines the rules for logging to the default collection.
Collection defines the collection to apply the rule to.
Scope defines the scope to apply the rule to.
NoLoggingRules defines the rules for disabling logging to for conflicts in a specific scope or collection.
Collection defines the collection to apply the rule to.
Scope defines the scope to apply the rule to.
DesiredLatency is the target latency (ms) for high-priority replications. This field defaults to 50.
DocBatchSizeKb is the size (KB) of document batches sent.
FailureRestartInterval is the seconds to wait before restarting after a failure.
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).
FilterBypassExpiry when true, TTL is removed before replication.
FilterBypassUncommittedTxn when true, documents with uncommitted txn xattrs are not replicated.
FilterDeletion when true, delete mutations are filtered out (not replicated).
FilterExpiration when true, expiry mutations are filtered out.
FilterExpression is a filter expression to match against documents in the source bucket. Each document that produces a successful match is replicated.
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.
HlvPruningWindowSec is the HLV pruning window (sec) for hybrid logical vector conflict resolution.
JSFunctionTimeoutMs is the timeout for JS custom conflict-resolution functions (ms).
LogLevel is the logging verbosity for XDCR.
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.
Mobile enables mobile (Sync Gateway) active-active mode. This feature is available in Couchbase Server 7.6.4 and later
NetworkUsageLimit is the upper limit for replication network usage (MB/s).
OptimisticReplicationThreshold is the size threshold below which documents replicate optimistically.
PauseRequested indicates whether the replication has been issued a pause request.
Priority is the resource priority for replication streams.
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 "-_%\.".
RetryOnRemoteAuthErr defines whether to retry connections when remote auth fails.
RetryOnRemoteAuthErrMaxWaitSec is the max wait seconds for retrying remote auth failures. Only effective if retryOnRemoteAuthErr is true.
SourceNozzlePerNode is the number of source nozzles (parallelism) per source node.
StatsInterval is the interval for statistics updates (ms).
TargetNozzlePerNode is the number of target nozzles per target node (parallelism).
WorkerBatchSize is the number of mutations per worker batch.
Source: couchbase.crds.yaml
Changes to CouchbaseMigrationReplication (couchbase.com/v2) in each Couchbase Operator version, compared to the version before it.
26 properties have been added
5 properties have changed the description
Released · View CouchbaseMigrationReplication in 2.9.0
The description of CouchbaseMigrationReplication has changed
7 properties have changed the description
Released · View CouchbaseMigrationReplication in 2.7.0
CouchbaseMigrationReplication was already present in this version of Couchbase Operator, the oldest one on kubespec.dev
Released · View CouchbaseMigrationReplication in 2.3.1
No examples of CouchbaseMigrationReplication yet. Contribute one on GitHub.