Resource Documentation

    March 16, 2025
    + 12
    How to access documentation for Couchbase custom resources.

    Online Resource Documentation

    Couchbase resources are documented entirely using Kubernetes to reduce duplication of effort. Accessing the documentation requires the resource type and a JSON path.

    The available resources can be listed with the following command:

    console
    kubectl api-resources | grep couchbase couchbaseautoscalers cba couchbase.com true CouchbaseAutoscaler couchbasebackuprestores cbrestore couchbase.com true CouchbaseBackupRestore couchbasebackups cbbackup couchbase.com true CouchbaseBackup couchbasebuckets couchbase.com true CouchbaseBucket couchbaseclusters cbc couchbase.com true CouchbaseCluster couchbaseephemeralbuckets couchbase.com true CouchbaseEphemeralBucket couchbasegroups couchbase.com true CouchbaseGroup couchbasememcachedbuckets couchbase.com true CouchbaseMemcachedBucket couchbasereplications couchbase.com true CouchbaseReplication couchbaserolebindings couchbase.com true CouchbaseRoleBinding couchbaseusers couchbase.com true CouchbaseUser

    Then to access documentation for a resource, take the name from the first column and use the "explain" functionality of kubectl:

    console
    kubectl explain couchbasereplications KIND: CouchbaseReplication VERSION: couchbase.com/v2 DESCRIPTION: 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. FIELDS: apiVersion <string> 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 <string> 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 metadata <Object> Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata spec <Object> -required-

    You can descend through the resource configuration by making the JSON path more specific. For example:

    console
    $ kubectl explain couchbasereplications.spec in couchbasereplications.spec KIND: CouchbaseReplication VERSION: couchbase.com/v2 RESOURCE: spec <Object> DESCRIPTION: CouchbaseReplicationSpec allows configuration of an XDCR replication. FIELDS: bucket <string> -required- 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 "-_%\.". compressionType <string> CompressionType is the type of compression to apply to the replication. When None, no compression will be applied to documents as they are transferred between clusters. When Auto, Couchbase server will automatically compress documents as they are transferred to reduce bandwidth requirements. This field must be one of "None" or "Auto", defaulting to "Auto". filterExpression <string> FilterExpression allows certain documents to be filtered out of the replication. paused <boolean> Paused allows a replication to be stopped and restarted without having to restart the replication from the beginning. remoteBucket <string> -required- 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 "-_%\.".

    Each field describes what it does, the expected type, and whether or not it is required in order to be accepted by Kubernetes.