diff --git a/charts/couchbase-operator/README.md b/charts/couchbase-operator/README.md index cb6c2cb..3d221a5 100644 --- a/charts/couchbase-operator/README.md +++ b/charts/couchbase-operator/README.md @@ -151,7 +151,7 @@ for more information about customizing and managing your charts. | cluster.cluster.indexer.stableSnapshotInterval | string | `"5s"` | StableSnapshotInterval controls when disk indexes should be snapshotted. This defaults to 5s, and must be greater than or equal to 1ms. | | cluster.cluster.indexer.storageMode | string | `"memory_optimized"` | 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". | | cluster.cluster.indexer.threads | string | `nil` | 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. | -| cluster.cluster.query | object | `{"backfillEnabled":true,"cboEnabled":true,"cleanupClientAttemptsEnabled":true,"cleanupLostAttemptsEnabled":true,"cleanupWindow":"60s","completedLimit":4000,"completedMaxPlanSize":"262144","completedTrackingAllRequests":false,"completedTrackingEnabled":true,"completedTrackingThreshold":"7s","logLevel":"info","maxParallelism":1,"memoryQuota":"0","nodeQuota":null,"nodeQuotaValPercent":67,"numActiveTransactionRecords":1024,"numCpus":0,"pipelineBatch":16,"pipelineCap":512,"preparedLimit":16384,"scanCap":512,"temporarySpace":"5Gi","temporarySpaceUnlimited":false,"timeout":null,"txTimeout":"0ms","useReplica":false}` | Query allows the query service to be configured. | +| cluster.cluster.query | object | `{"backfillEnabled":true,"cboEnabled":true,"cleanupClientAttemptsEnabled":true,"cleanupLostAttemptsEnabled":true,"cleanupWindow":"60s","completedLimit":4000,"completedMaxPlanSize":"262144","completedTrackingAllRequests":false,"completedTrackingEnabled":true,"completedTrackingThreshold":"7s","logLevel":"info","maxParallelism":1,"memoryQuota":"0","nodeQuotaValPercent":67,"numActiveTransactionRecords":1024,"numCpus":0,"pipelineBatch":16,"pipelineCap":512,"preparedLimit":16384,"scanCap":512,"temporarySpace":"5Gi","temporarySpaceUnlimited":false,"timeout":null,"txTimeout":"0ms","useReplica":false}` | Query allows the query service to be configured. | | cluster.cluster.query.backfillEnabled | bool | `true` | BackfillEnabled allows the query service to backfill. | | cluster.cluster.query.cboEnabled | bool | `true` | CBOEnabled specifies whether the cost-based optimizer is enabled. Defaults to true. | | cluster.cluster.query.cleanupClientAttemptsEnabled | bool | `true` | CleanupClientAttemptsEnabled specifies whether the Query service preferentially aims to clean up just transactions that it has created, leaving transactions for the distributed cleanup process only when it is forced to. Defaults to true. | @@ -165,7 +165,6 @@ for more information about customizing and managing your charts. | cluster.cluster.query.logLevel | string | `"info"` | LogLevel controls the verbosity of query logs. This field must be one of "debug", "trace", "info", "warn", "error", "severe", or "none", defaulting to "info". | | cluster.cluster.query.maxParallelism | int | `1` | MaxParallelism specifies the maximum parallelism for queries on all Query nodes in the cluster. If the value is zero, negative, or larger than the number of allowed cored the maximum parallelism is restricted to the number of allowed cores. Defaults to 1. | | cluster.cluster.query.memoryQuota | string | `"0"` | MemoryQuota specifies the maximum amount of memory a request may use on any Query node in the cluster. This parameter enforces a ceiling on the memory used for the tracked documents required for processing a request. It does not take into account any other memory that might be used to process a request, such as the stack, the operators, or some intermediate values. Defaults to 0. | -| cluster.cluster.query.nodeQuota | string | `nil` | NodeQuota sets a soft memory limit for every Query node in the cluster. The garbage collector tries to keep below this target. It is not a hard, absolute limit, and memory usage may exceed this value. This field is only supported on CB versions 7.6.0+. | | cluster.cluster.query.nodeQuotaValPercent | int | `67` | NodeQuotaValPercent sets the percentage of the `useReplica` that is dedicated to tracked value content memory across all active requests for every Query node in the cluster. This field is only supported on CB versions 7.6.0+. Defaults to 67. | | cluster.cluster.query.numActiveTransactionRecords | int | `1024` | NumActiveTransactionRecords specifies the total number of active transaction records for all Query nodes in the cluster. Default to 1024 and has a minimum of 1. | | cluster.cluster.query.numCpus | int | `0` | NumCpus is the number of CPUs the Query service can use on any Query node in the cluster. When set to 0 (the default), the Query service can use all available CPUs, up to the limits described below. The number of CPUs can never be greater than the number of logical CPUs. In Community Edition, the number of allowed CPUs cannot be greater than 4. In Enterprise Edition, there is no limit to the number of allowed CPUs. This field is only supported on CB versions 7.6.0+. NOTE: This change requires a restart of the Query service to take effect which can be done by rescheduling nodes that are running the query service. Defaults to 0 | @@ -178,7 +177,7 @@ for more information about customizing and managing your charts. | cluster.cluster.query.timeout | string | `nil` | Timeout is the maximum time to spend on the request before timing out. If this field is not set then there will be no timeout. | | cluster.cluster.query.txTimeout | string | `"0ms"` | TxTimeout is the maximum time to spend on a transaction before timing out. This setting only applies to requests containing the BEGIN TRANSACTION statement, or to requests where the tximplicit parameter is set. For all other requests, it is ignored. Defaults to 0ms (no timeout). | | cluster.cluster.query.useReplica | bool | `false` | UseReplica specifies whether a query can fetch data from a replica vBucket if active vBuckets are inaccessible. If set to true then read from replica is enabled for all queries, but can be disabled at request level. If set to false read from replica is disabled for all queries and cannot be overridden at request level. If this field is unset then it is enabled/disabled at the request level. This field is only supported on CB versions 7.6.0+. | -| cluster.cluster.queryServiceMemoryQuota | string | `nil` | QueryServiceMemQuota is a dummy field. By default, Couchbase server provides no memory resource constraints 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources- containers/#resource-units-in-kubernetes | +| cluster.cluster.queryServiceMemoryQuota | string | `nil` | QueryServiceMemQuota is 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources- containers/#resource-units-in-kubernetes In CB Server 7.6.0+ QueryServiceMemQuota also sets a soft memory limit for every Query node in the cluster. The garbage collector tries to keep below this target. It is not a hard, absolute limit, and memory usage may exceed this value. | | cluster.cluster.searchServiceMemoryQuota | string | `"256Mi"` | 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 | | cluster.enableOnlineVolumeExpansion | bool | `false` | 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 environment 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 | | cluster.enablePreviewScaling | bool | `false` | DEPRECATED - This option only exists for backwards compatibility and no longer restricts autoscaling to ephemeral services. EnablePreviewScaling enables autoscaling for stateful services and buckets. | @@ -256,7 +255,7 @@ for more information about customizing and managing your charts. | cluster.servers.default.services | list | `["data","index","query","search","analytics","eventing"]` | Services is the set of Couchbase services to run on this server class. At least one class must contain the data service. The field may contain any of "data", "index", "query", "search", "eventing" or "analytics". Each service may only be specified once. | | cluster.servers.default.size | int | `3` | Size is the expected requested of the server class. This field must be greater than or equal to 1. | | cluster.softwareUpdateNotifications | bool | `false` | SoftwareUpdateNotifications enables software update notifications in the UI. When enabled, the UI will alert when a Couchbase server upgrade is available. | -| cluster.upgradeProcess | string | `nil` | UpgradeProcess defines the process that will be used when performing a couchbase cluster upgrade. When SwapRebalance is requested (default), pods will be upgraded using either a RollingUpgrade or ImmediateUpgrade (determined by UpgradeStrategy). When DeltaRecovery is requested, the operator will perform an in-place upgrade on a best effort basis. DeltaRecovery cannot be used if the UpgradeStrategy is set to ImmediateUpgrade. | +| cluster.upgradeProcess | string | `nil` | UpgradeProcess defines the process that will be used when performing a couchbase cluster upgrade. When SwapRebalance is requested (default), pods will be upgraded using either a RollingUpgrade or ImmediateUpgrade (determined by UpgradeStrategy). When InPlaceUpgrade is requested, the operator will perform an in-place upgrade on a best effort basis. InPlaceUpgrade cannot be used if the UpgradeStrategy is set to ImmediateUpgrade. | | cluster.upgradeStrategy | string | `nil` | UpgradeStrategy controls how aggressive the Operator is when performing a cluster upgrade. When a rolling upgrade is requested, pods are upgraded one at a time. This strategy is slower, however less disruptive. When an immediate upgrade strategy is requested, all pods are upgraded at the same time. This strategy is faster, but more disruptive. This field must be either "RollingUpgrade" or "ImmediateUpgrade", defaulting to "RollingUpgrade". | | cluster.volumeClaimTemplates | object | `{"metadata":{"annotations":null,"labels":null,"name":null},"spec":{"accessModes":null,"dataSourceRef":{"apiGroup":null,"kind":null,"name":null,"namespace":null},"resources":{"claims":{"name":null},"limits":null,"requests":null},"selector":{"matchExpressions":{"key":null,"operator":null,"values":null},"matchLabels":null},"storageClassName":null,"volumeMode":null,"volumeName":null}}` | VolumeClaimTemplates define the desired characteristics of a volume that can be requested/claimed by a pod, for example the storage class to use and the volume size. Volume claim templates are referred to by name by server class volume mount configuration. | | cluster.volumeClaimTemplates.metadata | object | `{"annotations":null,"labels":null,"name":null}` | Standard objects metadata. This is a curated version for use with Couchbase resource templates. | diff --git a/charts/couchbase-operator/README.md.adoc b/charts/couchbase-operator/README.md.adoc index 41f2ae6..aa88649 100644 --- a/charts/couchbase-operator/README.md.adoc +++ b/charts/couchbase-operator/README.md.adoc @@ -84,7 +84,7 @@ | cluster.buckets.selector.matchExpressions | object | `{"key":null,"operator":null,"values":null}` | matchExpressions is a list of label selector requirements. The requirements are ANDed. | cluster.buckets.selector.matchLabels | string | `nil` | 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. | cluster.buckets.synchronize | bool | `false` | Synchronize allows unmanaged buckets, scopes, and collections to be synchronized as Kubernetes resources by the Operator. This feature is intended for development only and should not be used for production workloads. The synchronization workflow starts with `spec.buckets.managed` being set to false, the user can manually create buckets, scopes, and collections using the Couchbase UI, or other tooling. When you wish to commit to Kubernetes resources, you must specify a unique label selector in the `spec.buckets.selector` field, and this field is set to true. The Operator will create Kubernetes resources for you, and upon completion set the cluster's `Synchronized` status condition. Synchronizing will not create a Kubernetes resource for the Couchbase Server maintained _system scope. You may then safely set `spec.buckets.managed` to true and the Operator will manage these resources as per usual. To update an already managed data topology, you must first set it to unmanaged, make any changes, and delete any old resources, then follow the standard synchronization workflow. The Operator can not, and will not, ever delete, or make modifications to resource specifications that are intended to be user managed, or managed by a life cycle management tool. These actions must be instigated by an end user. For a more complete experience, refer to the documentation for the `cao save` and `cao restore` CLI commands. -| cluster.cluster | object | `{"analyticsServiceMemoryQuota":"1Gi","autoCompaction":{"databaseFragmentationThreshold":{"percent":30,"size":null},"parallelCompaction":false,"timeWindow":{"abortCompactionOutsideWindow":false,"end":null,"start":null},"tombstonePurgeInterval":"72h","viewFragmentationThreshold":{"percent":30,"size":null}},"autoFailoverMaxCount":1,"autoFailoverOnDataDiskIssues":false,"autoFailoverOnDataDiskIssuesTimePeriod":"120s","autoFailoverServerGroup":false,"autoFailoverTimeout":"120s","clusterName":null,"data":{"auxIOThreads":null,"minReplicasCount":0,"nonIOThreads":null,"readerThreads":null,"writerThreads":null},"dataServiceMemoryQuota":"256Mi","eventingServiceMemoryQuota":"256Mi","indexServiceMemoryQuota":"256Mi","indexStorageSetting":"memory_optimized","indexer":{"enableShardAffinity":false,"logLevel":"info","maxRollbackPoints":2,"memorySnapshotInterval":"200ms","numReplica":0,"redistributeIndexes":false,"stableSnapshotInterval":"5s","storageMode":"memory_optimized","threads":null},"query":{"backfillEnabled":true,"cboEnabled":true,"cleanupClientAttemptsEnabled":true,"cleanupLostAttemptsEnabled":true,"cleanupWindow":"60s","completedLimit":4000,"completedMaxPlanSize":"262144","completedTrackingAllRequests":false,"completedTrackingEnabled":true,"completedTrackingThreshold":"7s","logLevel":"info","maxParallelism":1,"memoryQuota":"0","nodeQuota":null,"nodeQuotaValPercent":67,"numActiveTransactionRecords":1024,"numCpus":0,"pipelineBatch":16,"pipelineCap":512,"preparedLimit":16384,"scanCap":512,"temporarySpace":"5Gi","temporarySpaceUnlimited":false,"timeout":null,"txTimeout":"0ms","useReplica":false},"queryServiceMemoryQuota":null,"searchServiceMemoryQuota":"256Mi"}` | ClusterSettings define Couchbase cluster-wide settings such as memory allocation, failover characteristics and index settings. +| cluster.cluster | object | `{"analyticsServiceMemoryQuota":"1Gi","autoCompaction":{"databaseFragmentationThreshold":{"percent":30,"size":null},"parallelCompaction":false,"timeWindow":{"abortCompactionOutsideWindow":false,"end":null,"start":null},"tombstonePurgeInterval":"72h","viewFragmentationThreshold":{"percent":30,"size":null}},"autoFailoverMaxCount":1,"autoFailoverOnDataDiskIssues":false,"autoFailoverOnDataDiskIssuesTimePeriod":"120s","autoFailoverServerGroup":false,"autoFailoverTimeout":"120s","clusterName":null,"data":{"auxIOThreads":null,"minReplicasCount":0,"nonIOThreads":null,"readerThreads":null,"writerThreads":null},"dataServiceMemoryQuota":"256Mi","eventingServiceMemoryQuota":"256Mi","indexServiceMemoryQuota":"256Mi","indexStorageSetting":"memory_optimized","indexer":{"enableShardAffinity":false,"logLevel":"info","maxRollbackPoints":2,"memorySnapshotInterval":"200ms","numReplica":0,"redistributeIndexes":false,"stableSnapshotInterval":"5s","storageMode":"memory_optimized","threads":null},"query":{"backfillEnabled":true,"cboEnabled":true,"cleanupClientAttemptsEnabled":true,"cleanupLostAttemptsEnabled":true,"cleanupWindow":"60s","completedLimit":4000,"completedMaxPlanSize":"262144","completedTrackingAllRequests":false,"completedTrackingEnabled":true,"completedTrackingThreshold":"7s","logLevel":"info","maxParallelism":1,"memoryQuota":"0","nodeQuotaValPercent":67,"numActiveTransactionRecords":1024,"numCpus":0,"pipelineBatch":16,"pipelineCap":512,"preparedLimit":16384,"scanCap":512,"temporarySpace":"5Gi","temporarySpaceUnlimited":false,"timeout":null,"txTimeout":"0ms","useReplica":false},"queryServiceMemoryQuota":null,"searchServiceMemoryQuota":"256Mi"}` | ClusterSettings define Couchbase cluster-wide settings such as memory allocation, failover characteristics and index settings. | cluster.cluster.analyticsServiceMemoryQuota | string | `"1Gi"` | 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 | cluster.cluster.autoCompaction | object | `{"databaseFragmentationThreshold":{"percent":30,"size":null},"parallelCompaction":false,"timeWindow":{"abortCompactionOutsideWindow":false,"end":null,"start":null},"tombstonePurgeInterval":"72h","viewFragmentationThreshold":{"percent":30,"size":null}}` | AutoCompaction allows the configuration of auto-compaction, including on what conditions disk space is reclaimed and when it is allowed to run. | cluster.cluster.autoCompaction.databaseFragmentationThreshold | object | `{"percent":30,"size":null}` | DatabaseFragmentationThreshold defines triggers for when database compaction should start. @@ -118,7 +118,7 @@ | cluster.cluster.indexer.stableSnapshotInterval | string | `"5s"` | StableSnapshotInterval controls when disk indexes should be snapshotted. This defaults to 5s, and must be greater than or equal to 1ms. | cluster.cluster.indexer.storageMode | string | `"memory_optimized"` | 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". | cluster.cluster.indexer.threads | string | `nil` | 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. -| cluster.cluster.query | object | `{"backfillEnabled":true,"cboEnabled":true,"cleanupClientAttemptsEnabled":true,"cleanupLostAttemptsEnabled":true,"cleanupWindow":"60s","completedLimit":4000,"completedMaxPlanSize":"262144","completedTrackingAllRequests":false,"completedTrackingEnabled":true,"completedTrackingThreshold":"7s","logLevel":"info","maxParallelism":1,"memoryQuota":"0","nodeQuota":null,"nodeQuotaValPercent":67,"numActiveTransactionRecords":1024,"numCpus":0,"pipelineBatch":16,"pipelineCap":512,"preparedLimit":16384,"scanCap":512,"temporarySpace":"5Gi","temporarySpaceUnlimited":false,"timeout":null,"txTimeout":"0ms","useReplica":false}` | Query allows the query service to be configured. +| cluster.cluster.query | object | `{"backfillEnabled":true,"cboEnabled":true,"cleanupClientAttemptsEnabled":true,"cleanupLostAttemptsEnabled":true,"cleanupWindow":"60s","completedLimit":4000,"completedMaxPlanSize":"262144","completedTrackingAllRequests":false,"completedTrackingEnabled":true,"completedTrackingThreshold":"7s","logLevel":"info","maxParallelism":1,"memoryQuota":"0","nodeQuotaValPercent":67,"numActiveTransactionRecords":1024,"numCpus":0,"pipelineBatch":16,"pipelineCap":512,"preparedLimit":16384,"scanCap":512,"temporarySpace":"5Gi","temporarySpaceUnlimited":false,"timeout":null,"txTimeout":"0ms","useReplica":false}` | Query allows the query service to be configured. | cluster.cluster.query.backfillEnabled | bool | `true` | BackfillEnabled allows the query service to backfill. | cluster.cluster.query.cboEnabled | bool | `true` | CBOEnabled specifies whether the cost-based optimizer is enabled. Defaults to true. | cluster.cluster.query.cleanupClientAttemptsEnabled | bool | `true` | CleanupClientAttemptsEnabled specifies whether the Query service preferentially aims to clean up just transactions that it has created, leaving transactions for the distributed cleanup process only when it is forced to. Defaults to true. @@ -132,7 +132,6 @@ | cluster.cluster.query.logLevel | string | `"info"` | LogLevel controls the verbosity of query logs. This field must be one of "debug", "trace", "info", "warn", "error", "severe", or "none", defaulting to "info". | cluster.cluster.query.maxParallelism | int | `1` | MaxParallelism specifies the maximum parallelism for queries on all Query nodes in the cluster. If the value is zero, negative, or larger than the number of allowed cored the maximum parallelism is restricted to the number of allowed cores. Defaults to 1. | cluster.cluster.query.memoryQuota | string | `"0"` | MemoryQuota specifies the maximum amount of memory a request may use on any Query node in the cluster. This parameter enforces a ceiling on the memory used for the tracked documents required for processing a request. It does not take into account any other memory that might be used to process a request, such as the stack, the operators, or some intermediate values. Defaults to 0. -| cluster.cluster.query.nodeQuota | string | `nil` | NodeQuota sets a soft memory limit for every Query node in the cluster. The garbage collector tries to keep below this target. It is not a hard, absolute limit, and memory usage may exceed this value. This field is only supported on CB versions 7.6.0+. | cluster.cluster.query.nodeQuotaValPercent | int | `67` | NodeQuotaValPercent sets the percentage of the `useReplica` that is dedicated to tracked value content memory across all active requests for every Query node in the cluster. This field is only supported on CB versions 7.6.0+. Defaults to 67. | cluster.cluster.query.numActiveTransactionRecords | int | `1024` | NumActiveTransactionRecords specifies the total number of active transaction records for all Query nodes in the cluster. Default to 1024 and has a minimum of 1. | cluster.cluster.query.numCpus | int | `0` | NumCpus is the number of CPUs the Query service can use on any Query node in the cluster. When set to 0 (the default), the Query service can use all available CPUs, up to the limits described below. The number of CPUs can never be greater than the number of logical CPUs. In Community Edition, the number of allowed CPUs cannot be greater than 4. In Enterprise Edition, there is no limit to the number of allowed CPUs. This field is only supported on CB versions 7.6.0+. NOTE: This change requires a restart of the Query service to take effect which can be done by rescheduling nodes that are running the query service. Defaults to 0 @@ -145,7 +144,7 @@ | cluster.cluster.query.timeout | string | `nil` | Timeout is the maximum time to spend on the request before timing out. If this field is not set then there will be no timeout. | cluster.cluster.query.txTimeout | string | `"0ms"` | TxTimeout is the maximum time to spend on a transaction before timing out. This setting only applies to requests containing the BEGIN TRANSACTION statement, or to requests where the tximplicit parameter is set. For all other requests, it is ignored. Defaults to 0ms (no timeout). | cluster.cluster.query.useReplica | bool | `false` | UseReplica specifies whether a query can fetch data from a replica vBucket if active vBuckets are inaccessible. If set to true then read from replica is enabled for all queries, but can be disabled at request level. If set to false read from replica is disabled for all queries and cannot be overridden at request level. If this field is unset then it is enabled/disabled at the request level. This field is only supported on CB versions 7.6.0+. -| cluster.cluster.queryServiceMemoryQuota | string | `nil` | QueryServiceMemQuota is a dummy field. By default, Couchbase server provides no memory resource constraints 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes +| cluster.cluster.queryServiceMemoryQuota | string | `nil` | QueryServiceMemQuota is 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes In CB Server 7.6.0+ QueryServiceMemQuota also sets a soft memory limit for every Query node in the cluster. The garbage collector tries to keep below this target. It is not a hard, absolute limit, and memory usage may exceed this value. | cluster.cluster.searchServiceMemoryQuota | string | `"256Mi"` | 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 | cluster.enableOnlineVolumeExpansion | bool | `false` | 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 environment 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 | cluster.enablePreviewScaling | bool | `false` | DEPRECATED - This option only exists for backwards compatibility and no longer restricts autoscaling to ephemeral services. EnablePreviewScaling enables autoscaling for stateful services and buckets. @@ -233,7 +232,7 @@ | cluster.servers.default.services | list | `["data","index","query","search","analytics","eventing"]` | Services is the set of Couchbase services to run on this server class. At least one class must contain the data service. The field may contain any of "data", "index", "query", "search", "eventing" or "analytics". Each service may only be specified once. | cluster.servers.default.size | int | `3` | Size is the expected requested of the server class. This field must be greater than or equal to 1. | cluster.softwareUpdateNotifications | bool | `false` | SoftwareUpdateNotifications enables software update notifications in the UI. When enabled, the UI will alert when a Couchbase server upgrade is available. -| cluster.upgradeProcess | string | `nil` | UpgradeProcess defines the process that will be used when performing a couchbase cluster upgrade. When SwapRebalance is requested (default), pods will be upgraded using either a RollingUpgrade or ImmediateUpgrade (determined by UpgradeStrategy). When DeltaRecovery is requested, the operator will perform an in-place upgrade on a best effort basis. DeltaRecovery cannot be used if the UpgradeStrategy is set to ImmediateUpgrade. +| cluster.upgradeProcess | string | `nil` | UpgradeProcess defines the process that will be used when performing a couchbase cluster upgrade. When SwapRebalance is requested (default), pods will be upgraded using either a RollingUpgrade or ImmediateUpgrade (determined by UpgradeStrategy). When InPlaceUpgrade is requested, the operator will perform an in-place upgrade on a best effort basis. InPlaceUpgrade cannot be used if the UpgradeStrategy is set to ImmediateUpgrade. | cluster.upgradeStrategy | string | `nil` | UpgradeStrategy controls how aggressive the Operator is when performing a cluster upgrade. When a rolling upgrade is requested, pods are upgraded one at a time. This strategy is slower, however less disruptive. When an immediate upgrade strategy is requested, all pods are upgraded at the same time. This strategy is faster, but more disruptive. This field must be either "RollingUpgrade" or "ImmediateUpgrade", defaulting to "RollingUpgrade". | cluster.volumeClaimTemplates | object | `{"metadata":{"annotations":null,"labels":null,"name":null},"spec":{"accessModes":null,"dataSourceRef":{"apiGroup":null,"kind":null,"name":null,"namespace":null},"resources":{"claims":{"name":null},"limits":null,"requests":null},"selector":{"matchExpressions":{"key":null,"operator":null,"values":null},"matchLabels":null},"storageClassName":null,"volumeMode":null,"volumeName":null}}` | VolumeClaimTemplates define the desired characteristics of a volume that can be requested/claimed by a pod, for example the storage class to use and the volume size. Volume claim templates are referred to by name by server class volume mount configuration. | cluster.volumeClaimTemplates.metadata | object | `{"annotations":null,"labels":null,"name":null}` | Standard objects metadata. This is a curated version for use with Couchbase resource templates. diff --git a/charts/couchbase-operator/crds/couchbase.crds.yaml b/charts/couchbase-operator/crds/couchbase.crds.yaml index 596c829..371680c 100644 --- a/charts/couchbase-operator/crds/couchbase.crds.yaml +++ b/charts/couchbase-operator/crds/couchbase.crds.yaml @@ -283,8 +283,14 @@ spec: type: object forceUpdates: description: |- - Forces data in the Couchbase cluster to be overwritten - even if the data in the cluster is newer than the restore + Forces data in the Couchbase cluster to be overwritten even if the data in the cluster is newer. + By default, the system does not force updates, + and all updates use Couchbase's conflict resolution mechanism to ensure + that if newer data exists on the cluster, + older restored data does not overwrite it. + However, if `couchbasebackuprestores.spec.forceUpdates` is true, + then the backup record will _always_ overwrite the cluster record, + regardless of Couchbase's conflict resolution. type: boolean logRetention: default: 168h @@ -336,6 +342,14 @@ spec: If set, will override `CouchbaseCluster.spec.backup.useIAM`. type: boolean type: object + overwriteUsers: + default: false + description: |- + Overwrites the already existing users in the cluster when user restoration is enabled (spec.services.users). + The default behavior of backup/restore of users is to skip already existing users. + This is only available for Couchbase Server 7.6 and later. + This field defaults to `false`. + type: boolean repo: description: |- Repo is the backup folder to restore from. If no repository is specified, @@ -416,6 +430,12 @@ spec: GSIIndex restores document indexes from the backup. This field defaults to true. type: boolean + users: + default: false + description: |- + Users restores cluster level users, including their roles and permissions. This is + only available for Couchbase Server 7.6 and later. This field defaults to `false`. + type: boolean views: default: true description: Views restores views from the backup. This field @@ -832,8 +852,8 @@ spec: default: {} description: |- Services allows control over what services are included in the backup. - By default, all service data and metadata are included. Modifications - to this field will only take effect on the next full 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. properties: analytics: default: true @@ -896,6 +916,12 @@ spec: GSIndexes enables the backup of global secondary index definitions for all buckets. This field defaults to `true`. type: boolean + users: + default: false + description: |- + 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`. + type: boolean views: default: true description: |- @@ -2284,18 +2310,6 @@ spec: pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ type: string x-kubernetes-int-or-string: true - nodeQuota: - anyOf: - - type: integer - - type: string - description: |- - NodeQuota sets a soft memory limit for every Query node in the cluster. The garbage - collector tries to keep below this target. It is not a hard, absolute limit, and memory - usage may exceed this value. - This field is only supported on CB versions 7.6.0+. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - type: string - x-kubernetes-int-or-string: true nodeQuotaValPercent: default: 67 description: |- @@ -2427,12 +2441,13 @@ spec: - type: integer - type: string description: |- - QueryServiceMemQuota is a dummy field. By default, Couchbase server provides no - memory resource constraints for the query service, so this has no effect on Couchbase - server. It is, however, used when the spec.autoResourceAllocation feature is enabled, + QueryServiceMemQuota is 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes + In CB Server 7.6.0+ QueryServiceMemQuota also sets a soft memory limit for every Query node in the cluster. + The garbage collector tries to keep below this target. It is not a hard, absolute limit, and memory + usage may exceed this value. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ type: string x-kubernetes-int-or-string: true @@ -3580,6 +3595,7 @@ spec: - admin - xdcr - client + - backup type: string type: array x-kubernetes-list-type: set @@ -6432,12 +6448,13 @@ spec: description: |- UpgradeProcess defines the process that will be used when performing a couchbase cluster upgrade. When SwapRebalance is requested (default), pods will be upgraded using either a RollingUpgrade or - ImmediateUpgrade (determined by UpgradeStrategy). When DeltaRecovery is requested, the operator will - perform an in-place upgrade on a best effort basis. DeltaRecovery cannot be used if the UpgradeStrategy + ImmediateUpgrade (determined by UpgradeStrategy). When InPlaceUpgrade is requested, the operator will + perform an in-place upgrade on a best effort basis. InPlaceUpgrade cannot be used if the UpgradeStrategy is set to ImmediateUpgrade. enum: - SwapRebalance - DeltaRecovery + - InPlaceUpgrade type: string upgradeStrategy: description: |- @@ -7829,6 +7846,7 @@ spec: - security_admin_local - views_admin - views_reader + - eventing_manage_functions type: string scopes: description: |- diff --git a/charts/couchbase-operator/values-all.yaml b/charts/couchbase-operator/values-all.yaml index 9db7af1..0fbbefd 100644 --- a/charts/couchbase-operator/values-all.yaml +++ b/charts/couchbase-operator/values-all.yaml @@ -1213,11 +1213,6 @@ cluster: # used to process a request, such as the stack, the operators, or some # intermediate values. Defaults to 0. memoryQuota: '0' - # -- NodeQuota sets a soft memory limit for every Query node in the - # cluster. The garbage collector tries to keep below this target. It is - # not a hard, absolute limit, and memory usage may exceed this value. This - # field is only supported on CB versions 7.6.0+. - nodeQuota: # -- NodeQuotaValPercent sets the percentage of the `useReplica` that is # dedicated to tracked value content memory across all active requests for # every Query node in the cluster. This field is only supported on CB @@ -1279,14 +1274,14 @@ cluster: # enabled/disabled at the request level. This field is only supported on # CB versions 7.6.0+. useReplica: false - # -- QueryServiceMemQuota is a dummy field. By default, Couchbase server - # provides no memory resource constraints 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. More info: + # -- QueryServiceMemQuota is 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. More info: # https://kubernetes.io/docs/concepts/configuration/manage-resources- - # containers/#resource-units-in-kubernetes + # containers/#resource-units-in-kubernetes In CB Server 7.6.0+ + # QueryServiceMemQuota also sets a soft memory limit for every Query node in + # the cluster. The garbage collector tries to keep below this target. It is + # not a hard, absolute limit, and memory usage may exceed this value. queryServiceMemoryQuota: # -- SearchServiceMemQuota is the amount of memory that should be allocated # to the search service. This value is per-pod, and only applicable to pods @@ -2282,9 +2277,9 @@ cluster: # -- UpgradeProcess defines the process that will be used when performing a # couchbase cluster upgrade. When SwapRebalance is requested (default), pods # will be upgraded using either a RollingUpgrade or ImmediateUpgrade - # (determined by UpgradeStrategy). When DeltaRecovery is requested, the + # (determined by UpgradeStrategy). When InPlaceUpgrade is requested, the # operator will perform an in-place upgrade on a best effort basis. - # DeltaRecovery cannot be used if the UpgradeStrategy is set to + # InPlaceUpgrade cannot be used if the UpgradeStrategy is set to # ImmediateUpgrade. upgradeProcess: # -- UpgradeStrategy controls how aggressive the Operator is when performing a