$ helm repo add
$ helm repo update
$ helm install / -n
This chart deploys on a Kubernetes cluster using the Helm package manager.
To install the chart with the release name ``:
$ helm install / -n
The command deploys on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.
Tip: List all releases using
helm list
To uninstall/delete the ``:
$ helm delete -n
The command removes all the Kubernetes components associated with the chart and deletes the release.
The following table lists the configurable parameters of the `` chart and their default values.
Parameter | Description | Default |
---|---|---|
antiAffinity | Couchbase Operator Chart Values AntiAffinity forces the Operator to schedule different Couchbase server pods on different Kubernetes nodes. Anti-affinity reduces the likelihood of unrecoverable failure in the event of a node issue. Use of anti-affinity is highly recommended for production clusters. | null |
autoResourceAllocation.cpuLimits | CPULimits automatically populates the CPU limits across all Couchbase server pods. This field defaults to "4" CPUs. Explicitly specifying the CPU limit for a particular server class will override this value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources- containers/#resource-units-in-kubernetes | '4' |
autoResourceAllocation.cpuRequests | CPURequests automatically populates the CPU requests across all Couchbase server pods. The default vaule of "2", is the minimum recommended number of CPUs required to run Couchbase Server. Explicitly specifying the CPU request for a particular server class will override this value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources- containers/#resource-units-in-kubernetes | '2' |
autoResourceAllocation.enabled | Enabled defines whether auto-resource allocation is enabled. | null |
autoResourceAllocation.overheadPercent | OverheadPercent defines the amount of memory above that required for individual services on a pod. For Couchbase Server this should be approximately 25%. | 25 |
autoscaleStabilizationPeriod | AutoscaleStabilizationPeriod defines how long after a rebalance the corresponding HorizontalPodAutoscaler should remain in maintenance mode. During maintenance mode all autoscaling is disabled since every HorizontalPodAutoscaler associated with the cluster becomes inactive. Since certain metrics can be unpredictable when Couchbase is rebalancing or upgrading, setting a stabilization period helps to prevent scaling recommendations from the HorizontalPodAutoscaler for a provided period of time. Values must be a valid Kubernetes duration of 0s or higher: https://golang.org/pkg/time/#ParseDuration A value of 0, puts the cluster in maintenance mode during rebalance but immediately exits this mode once the rebalance has completed. When undefined, the HPA is never put into maintenance mode during rebalance. | null |
backup.image | The Backup Image to run on backup pods | null |
backup.imagePullSecrets.name | Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with- objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? | null |
backup.managed | Managed defines whether backups are managed by us or the clients. | null |
backup.nodeSelector | NodeSelector defines which nodes to constrain the pods that run any backup operations to | null |
backup.resources.limits | Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute- resources-container/ | null |
backup.resources.requests | Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute- resources-container/ | null |
backup.s3Secret | S3Secret contains the region and credentials for operating backups in S3 | null |
backup.selector.matchExpressions.key | key is the label key that the selector applies to. | null |
backup.selector.matchExpressions.operator | operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. | null |
backup.selector.matchExpressions.values | values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. | null |
backup.selector.matchLabels | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. | null |
backup.serviceAccountName | The Service Account to run backup (and restore) pods under. Without this backup pods will not be able to update status | null |
backup.tolerations.effect | Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. | null |
backup.tolerations.key | Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. | null |
backup.tolerations.operator | Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. | null |
backup.tolerations.tolerationSeconds | TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. | null |
backup.tolerations.value | Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. | null |
buckets.managed | Managed defines whether buckets are managed by us or the clients. | null |
buckets.selector.matchExpressions.key | key is the label key that the selector applies to. | null |
buckets.selector.matchExpressions.operator | operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. | null |
buckets.selector.matchExpressions.values | values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. | null |
buckets.selector.matchLabels | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. | null |
cluster.\analyticsServiceMemoryQuota | AnalyticsServiceMemQuota is the amount of memory that should be allocated to the analytics service. This value is per-pod, and only applicable to pods belonging to server classes running the analytics service. This field must be a quantity greater than or equal to 1Gi. This field defaults to 1Gi. More info: https://kubernetes.io/docs/concepts/configuration/manage- resources-containers/#resource-units-in-kubernetes | 1Gi |
cluster.autoCompaction.databaseFragmentationThreshold.percent | Percent is the percentage of disk fragmentation after which to decompaction will be triggered. This field must be in the range 2-100, defaulting to 30. | 30 |
cluster.autoCompaction.databaseFragmentationThreshold.size | Size is the amount of disk framentation, that once exceeded, will trigger decompaction. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources- containers/#resource-units-in-kubernetes | null |
cluster.autoCompaction.parallelCompaction | ParallelCompaction controls whether database and view compactions can happen in parallel. | null |
cluster.autoCompaction.timeWindow.abortCompactionOutsideWindow | AbortCompactionOutsideWindow stops compaction processes when the process moves outside the window. | null |
cluster.autoCompaction.timeWindow.end | End is a wallclock time, in the form HH:MM, when a compaction should stop. | null |
cluster.autoCompaction.timeWindow.start | Start is a wallclock time, in the form HH:MM, when a compaction is permitted to start. | null |
cluster.autoCompaction.tombstonePurgeInterval | TombstonePurgeInterval controls how long to wait before purging tombstones. This field must be in the range 1h-1440h, defaulting to 72h. More info: https://golang.org/pkg/time/#ParseDuration | 72h |
cluster.autoCompaction.viewFragmentationThreshold.percent | Percent is the percentage of disk fragmentation after which to decompaction will be triggered. This field must be in the range 2-100, defaulting to 30. | 30 |
cluster.autoCompaction.viewFragmentationThreshold.size | Size is the amount of disk framentation, that once exceeded, will trigger decompaction. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources- containers/#resource-units-in-kubernetes | null |
cluster.autoFailoverMaxCount | AutoFailoverMaxCount is the maximum number of automatic failovers Couchbase server will allow before not allowing any more. This field must be between 1-3, default 3. | 3 |
cluster.autoFailoverOnDataDiskIssues | AutoFailoverOnDataDiskIssues defines whether Couchbase server should failover a pod if a disk issue was detected. | null |
cluster.autoFailoverOnDataDiskIssuesTimePeriod | AutoFailoverOnDataDiskIssuesTimePeriod defines how long to wait for transient errors before failing over a faulty disk. This field must be in the range 5-3600s, defaulting to 120s. More info: https://golang.org/pkg/time/#ParseDuration | 120s |
cluster.autoFailoverServerGroup | AutoFailoverServerGroup whether to enable failing over a server group. | null |
cluster.autoFailoverTimeout | AutoFailoverTimeout defines how long Couchbase server will wait between a pod being witnessed as down, until when it will failover the pod. Couchbase server will only failover pods if it deems it safe to do so, and not result in data loss. This field must be in the range 5-3600s, defaulting to 120s. More info: https://golang.org/pkg/time/#ParseDuration | 120s |
cluster.clusterName | ClusterName defines the name of the cluster, as displayed in the Couchbase UI. By default, the cluster name is that specified in the CouchbaseCluster resource's metadata. | null |
cluster.data.readerThreads | ReaderThreads allows the number of threads used by the data service, per pod, to be altered. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. | null |
cluster.data.writerThreads | ReaderThreads allows the number of threads used by the data service, per pod, to be altered. This setting is especially relevant when using "durable writes", increaing this field will have a large impact on performance. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. | null |
cluster.dataServiceMemoryQuota | DataServiceMemQuota is the amount of memory that should be allocated to the data service. This value is per-pod, and only applicable to pods belonging to server classes running the data service. This field must be a quantity greater than or equal to 256Mi. This field defaults to 256Mi. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources- containers/#resource-units-in-kubernetes | 256Mi |
cluster.eventingServiceMemoryQuota | EventingServiceMemQuota is the amount of memory that should be allocated to the eventing service. This value is per-pod, and only applicable to pods belonging to server classes running the eventing service. This field must be a quantity greater than or equal to 256Mi. This field defaults to 256Mi. More info: https://kubernetes.io/docs/concepts/configuration/manage- resources-containers/#resource-units-in-kubernetes | 256Mi |
cluster.indexServiceMemoryQuota | IndexServiceMemQuota is the amount of memory that should be allocated to the index service. This value is per-pod, and only applicable to pods belonging to server classes running the index service. This field must be a quantity greater than or equal to 256Mi. This field defaults to 256Mi. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources- containers/#resource-units-in-kubernetes | 256Mi |
cluster.indexStorageSetting | DEPRECATED - by indexer. The index storage mode to use for secondary indexing. This field must be one of "memory_optimized" or "plasma", defaulting to "memory_optimized". This field is immutable and cannot be changed unless there are no server classes running the index service in the cluster. | memory_optimized |
cluster.indexer.logLevel | LogLevel controls the verbosity of indexer logs. This field must be one of "silent", "fatal", "error", "warn", "info", "verbose", "timing", "debug" or "trace", defaulting to "info". | info |
cluster.indexer.maxRollbackPoints | MaxRollbackPoints controls the number of checkpoints that can be rolled back to. The default is 2, with a minimum of 1. | 2 |
cluster.indexer.memorySnapshotInterval | MemorySnapshotInterval controls when memory indexes should be snapshotted. This defaults to 200ms, and must be greater than or equal to 1ms. | 200ms |
cluster.indexer.stableSnapshotInterval | StableSnapshotInterval controls when disk indexes should be snapshotted. This defaults to 5s, and must be greater than or equal to 1ms. | 5s |
cluster.indexer.storageMode | StorageMode controls the underlying storage engine for indexes. Once set it can only be modified if there are no nodes in the cluster running the index service. The field must be one of "memory_optimized" or "plasma", defaulting to "memory_optimized". | memory_optimized |
cluster.indexer.threads | Threads controls the number of processor threads to use for indexing. A value of 0 means 1 per CPU. This attribute must be greater than or equal to 0, defaulting to 0. | null |
cluster.query.backfillEnabled | BackfillEnabled allows the query service to backfill. | true |
cluster.query.temporarySpace | TemporarySpace allows the temporary storage used by the query service backfill, per-pod, to be modified. This field requires backfillEnabled to be set to true in order to have any effect. |
5Gi |
cluster.query.temporarySpaceUnlimited | TemporarySpaceUnlimited allows the temporary storage used by the query service backfill, per-pod, to be unconstrainend. This field requires backfillEnabled to be set to true in order to have any effect. This field overrides temporarySpace . |
null |
cluster.queryServiceMemoryQuota | QueryServiceMemQuota is a dummy field. By default, Couchbase server provides no memory resource constrints for the query service, so this has no effect on Couchbase server. It is, however, used when the spec.autoResourceAllocation feature is enabled, and is used to define the amount of memory reserved by the query service for use with Kubernetes resource scheduling. | null |
cluster.searchServiceMemoryQuota | SearchServiceMemQuota is the amount of memory that should be allocated to the search service. This value is per-pod, and only applicable to pods belonging to server classes running the search service. This field must be a quantity greater than or equal to 256Mi. This field defaults to 256Mi. More info: https://kubernetes.io/docs/concepts/configuration/manage- resources-containers/#resource-units-in-kubernetes | 256Mi |
enableOnlineVolumeExpansion | EnableOnlineVolumeExpansion enables online expansion of Persistent Volumes. You can only expand a PVC if its storage class's "allowVolumeExpansion" field is set to true. Additionally, Kubernetes feature "ExpandInUsePersistentVolumes" must be enabled in order to expand the volumes which are actively bound to Pods. Volumes can only be expanded and not reduced to a smaller size. See: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#resizing-an- in-use-persistentvolumeclaim If "EnableOnlineVolumeExpansion" is enabled for use within an evironment that does not actually support online volume and file system expansion then the cluster will fallback to rolling upgrade procedure to create a new set of Pods for use with resized Volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding- persistent-volumes-claims | null |