From c59f04f35902fd0545f2d8be2b116cf6e9df8653 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 13:27:51 +0300 Subject: [PATCH] chore(deps): bump the main group with 4 updates (#832) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] Co-authored-by: Timo Riski --- .trunk/trunk.yaml | 3 + CHANGELOG.md | 11 + .../service/opensearch/opensearch.go | 179 +++++++++ .../opensearch/zz_generated.deepcopy.go | 340 ++++++++++++++++++ .../userconfig/service/redis/redis.go | 2 +- .../templates/aiven.io_opensearches.yaml | 285 +++++++++++++++ .../templates/aiven.io_redis.yaml | 2 +- config/crd/bases/aiven.io_opensearches.yaml | 285 +++++++++++++++ config/crd/bases/aiven.io_redis.yaml | 2 +- docs/docs/api-reference/opensearch.md | 118 ++++++ docs/docs/api-reference/redis.md | 2 +- go.mod | 10 +- go.sum | 26 +- 13 files changed, 1244 insertions(+), 21 deletions(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index e936cba3c..6cdf1a524 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -23,6 +23,9 @@ lint: - prettier@3.3.3 - yamllint@1.35.1 ignore: + - linters: [markdown-link-check] + paths: + - docs/docs/api-reference/** - linters: [prettier] paths: - docs/docs/** diff --git a/CHANGELOG.md b/CHANGELOG.md index c8921aaa2..da6df415e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,17 @@ - Add `OpenSearch` field `userConfig.s3_migration.indices`, type `string`: A comma-delimited list of indices to restore from the snapshot. Multi-index syntax is supported - Change `PostgreSQL` field `userConfig.additional_backup_regions`: deprecated +- Add `OpenSearch` field `userConfig.azure_migration.restore_global_state`, type `boolean`: If true, + restore the cluster state. Defaults to false +- Add `OpenSearch` field `userConfig.gcs_migration.restore_global_state`, type `boolean`: If true, restore + the cluster state. Defaults to false +- Add `OpenSearch` field `userConfig.opensearch.search_backpressure`, type `object`: Search Backpressure + Settings +- Add `OpenSearch` field `userConfig.opensearch.shard_indexing_pressure`, type `object`: Shard indexing + back pressure settings +- Add `OpenSearch` field `userConfig.s3_migration.restore_global_state`, type `boolean`: If true, restore + the cluster state. Defaults to false +- Change `Redis` field `userConfig.redis_timeout`: maximum ~~`31536000`~~ → `2073600` ## v0.25.0 - 2024-09-19 diff --git a/api/v1alpha1/userconfig/service/opensearch/opensearch.go b/api/v1alpha1/userconfig/service/opensearch/opensearch.go index 3186cd542..37677cc75 100644 --- a/api/v1alpha1/userconfig/service/opensearch/opensearch.go +++ b/api/v1alpha1/userconfig/service/opensearch/opensearch.go @@ -36,6 +36,9 @@ type AzureMigration struct { // Azure account secret key. One of key or sas_token should be specified Key *string `groups:"create,update" json:"key,omitempty"` + // If true, restore the cluster state. Defaults to false + RestoreGlobalState *bool `groups:"create,update" json:"restore_global_state,omitempty"` + // +kubebuilder:validation:Pattern=`^[^\r\n]*$` // A shared access signatures (SAS) token. One of key or sas_token should be specified SasToken *string `groups:"create,update" json:"sas_token,omitempty"` @@ -70,6 +73,9 @@ type GcsMigration struct { // A comma-delimited list of indices to restore from the snapshot. Multi-index syntax is supported. By default, a restore operation includes all data streams and indices in the snapshot. If this argument is provided, the restore operation only includes the data streams and indices that you specify. Indices *string `groups:"create,update" json:"indices,omitempty"` + // If true, restore the cluster state. Defaults to false + RestoreGlobalState *bool `groups:"create,update" json:"restore_global_state,omitempty"` + // +kubebuilder:validation:Pattern=`^[^\r\n]*$` // The snapshot name to restore from SnapshotName string `groups:"create,update" json:"snapshot_name"` @@ -284,6 +290,170 @@ type AuthFailureListeners struct { IpRateLimiting *IpRateLimiting `groups:"create,update" json:"ip_rate_limiting,omitempty"` } +// Node duress settings +type NodeDuress struct { + // +kubebuilder:validation:Minimum=0 + // +kubebuilder:validation:Maximum=1 + // The CPU usage threshold (as a percentage) required for a node to be considered to be under duress. Default is 0.9 + CpuThreshold *float64 `groups:"create,update" json:"cpu_threshold,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // +kubebuilder:validation:Maximum=1 + // The heap usage threshold (as a percentage) required for a node to be considered to be under duress. Default is 0.7 + HeapThreshold *float64 `groups:"create,update" json:"heap_threshold,omitempty"` + + // +kubebuilder:validation:Minimum=1 + // The number of successive limit breaches after which the node is considered to be under duress. Default is 3 + NumSuccessiveBreaches *int `groups:"create,update" json:"num_successive_breaches,omitempty"` +} + +// Search shard settings +type SearchShardTask struct { + // +kubebuilder:validation:Minimum=1 + // The maximum number of search tasks to cancel in a single iteration of the observer thread. Default is 10.0 + CancellationBurst *float64 `groups:"create,update" json:"cancellation_burst,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The maximum number of tasks to cancel per millisecond of elapsed time. Default is 0.003 + CancellationRate *float64 `groups:"create,update" json:"cancellation_rate,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // +kubebuilder:validation:Maximum=1 + // The maximum number of tasks to cancel, as a percentage of successful task completions. Default is 0.1 + CancellationRatio *float64 `groups:"create,update" json:"cancellation_ratio,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The CPU usage threshold (in milliseconds) required for a single search shard task before it is considered for cancellation. Default is 15000 + CpuTimeMillisThreshold *int `groups:"create,update" json:"cpu_time_millis_threshold,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The elapsed time threshold (in milliseconds) required for a single search shard task before it is considered for cancellation. Default is 30000 + ElapsedTimeMillisThreshold *int `groups:"create,update" json:"elapsed_time_millis_threshold,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The number of previously completed search shard tasks to consider when calculating the rolling average of heap usage. Default is 100 + HeapMovingAverageWindowSize *int `groups:"create,update" json:"heap_moving_average_window_size,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // +kubebuilder:validation:Maximum=1 + // The heap usage threshold (as a percentage) required for a single search shard task before it is considered for cancellation. Default is 0.5 + HeapPercentThreshold *float64 `groups:"create,update" json:"heap_percent_threshold,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The minimum variance required for a single search shard task’s heap usage compared to the rolling average of previously completed tasks before it is considered for cancellation. Default is 2.0 + HeapVariance *float64 `groups:"create,update" json:"heap_variance,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // +kubebuilder:validation:Maximum=1 + // The heap usage threshold (as a percentage) required for the sum of heap usages of all search shard tasks before cancellation is applied. Default is 0.5 + TotalHeapPercentThreshold *float64 `groups:"create,update" json:"total_heap_percent_threshold,omitempty"` +} + +// Search task settings +type SearchTask struct { + // +kubebuilder:validation:Minimum=1 + // The maximum number of search tasks to cancel in a single iteration of the observer thread. Default is 5.0 + CancellationBurst *float64 `groups:"create,update" json:"cancellation_burst,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The maximum number of search tasks to cancel per millisecond of elapsed time. Default is 0.003 + CancellationRate *float64 `groups:"create,update" json:"cancellation_rate,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // +kubebuilder:validation:Maximum=1 + // The maximum number of search tasks to cancel, as a percentage of successful search task completions. Default is 0.1 + CancellationRatio *float64 `groups:"create,update" json:"cancellation_ratio,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The CPU usage threshold (in milliseconds) required for an individual parent task before it is considered for cancellation. Default is 30000 + CpuTimeMillisThreshold *int `groups:"create,update" json:"cpu_time_millis_threshold,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The elapsed time threshold (in milliseconds) required for an individual parent task before it is considered for cancellation. Default is 45000 + ElapsedTimeMillisThreshold *int `groups:"create,update" json:"elapsed_time_millis_threshold,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The window size used to calculate the rolling average of the heap usage for the completed parent tasks. Default is 10 + HeapMovingAverageWindowSize *int `groups:"create,update" json:"heap_moving_average_window_size,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // +kubebuilder:validation:Maximum=1 + // The heap usage threshold (as a percentage) required for an individual parent task before it is considered for cancellation. Default is 0.2 + HeapPercentThreshold *float64 `groups:"create,update" json:"heap_percent_threshold,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // The heap usage variance required for an individual parent task before it is considered for cancellation. A task is considered for cancellation when taskHeapUsage is greater than or equal to heapUsageMovingAverage * variance. Default is 2.0 + HeapVariance *float64 `groups:"create,update" json:"heap_variance,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // +kubebuilder:validation:Maximum=1 + // The heap usage threshold (as a percentage) required for the sum of heap usages of all search tasks before cancellation is applied. Default is 0.5 + TotalHeapPercentThreshold *float64 `groups:"create,update" json:"total_heap_percent_threshold,omitempty"` +} + +// Search Backpressure Settings +type SearchBackpressure struct { + // +kubebuilder:validation:Enum="monitor_only";"enforced";"disabled" + // The search backpressure mode. Valid values are monitor_only, enforced, or disabled. Default is monitor_only + Mode *string `groups:"create,update" json:"mode,omitempty"` + + // Node duress settings + NodeDuress *NodeDuress `groups:"create,update" json:"node_duress,omitempty"` + + // Search shard settings + SearchShardTask *SearchShardTask `groups:"create,update" json:"search_shard_task,omitempty"` + + // Search task settings + SearchTask *SearchTask `groups:"create,update" json:"search_task,omitempty"` +} + +// Operating factor +type OperatingFactor struct { + // +kubebuilder:validation:Minimum=0 + // Specify the lower occupancy limit of the allocated quota of memory for the shard. If the total memory usage of a shard is below this limit, shard indexing backpressure decreases the current allocated memory for that shard. Default is 0.75 + Lower *float64 `groups:"create,update" json:"lower,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // Specify the optimal occupancy of the allocated quota of memory for the shard. If the total memory usage of a shard is at this level, shard indexing backpressure doesn’t change the current allocated memory for that shard. Default is 0.85 + Optimal *float64 `groups:"create,update" json:"optimal,omitempty"` + + // +kubebuilder:validation:Minimum=0 + // Specify the upper occupancy limit of the allocated quota of memory for the shard. If the total memory usage of a shard is above this limit, shard indexing backpressure increases the current allocated memory for that shard. Default is 0.95 + Upper *float64 `groups:"create,update" json:"upper,omitempty"` +} +type Node struct { + // +kubebuilder:validation:Minimum=0 + // Define the percentage of the node-level memory threshold that acts as a soft indicator for strain on a node. Default is 0.7 + SoftLimit *float64 `groups:"create,update" json:"soft_limit,omitempty"` +} +type Shard struct { + // +kubebuilder:validation:Minimum=0 + // Specify the minimum assigned quota for a new shard in any role (coordinator, primary, or replica). Shard indexing backpressure increases or decreases this allocated quota based on the inflow of traffic for the shard. Default is 0.001 + MinLimit *float64 `groups:"create,update" json:"min_limit,omitempty"` +} + +// Primary parameter +type PrimaryParameter struct { + Node *Node `groups:"create,update" json:"node,omitempty"` + + Shard *Shard `groups:"create,update" json:"shard,omitempty"` +} + +// Shard indexing back pressure settings +type ShardIndexingPressure struct { + // Enable or disable shard indexing backpressure. Default is false + Enabled *bool `groups:"create,update" json:"enabled,omitempty"` + + // Run shard indexing backpressure in shadow mode or enforced mode. In shadow mode (value set as false), shard indexing backpressure tracks all granular-level metrics, but it doesn’t actually reject any indexing requests. In enforced mode (value set as true), shard indexing backpressure rejects any requests to the cluster that might cause a dip in its performance. Default is false + Enforced *bool `groups:"create,update" json:"enforced,omitempty"` + + // Operating factor + OperatingFactor *OperatingFactor `groups:"create,update" json:"operating_factor,omitempty"` + + // Primary parameter + PrimaryParameter *PrimaryParameter `groups:"create,update" json:"primary_parameter,omitempty"` +} + // OpenSearch settings type Opensearch struct { // Explicitly allow or block automatic creation of indices. Defaults to true @@ -426,11 +596,17 @@ type Opensearch struct { // Script compilation circuit breaker limits the number of inline script compilations within a period of time. Default is use-context ScriptMaxCompilationsRate *string `groups:"create,update" json:"script_max_compilations_rate,omitempty"` + // Search Backpressure Settings + SearchBackpressure *SearchBackpressure `groups:"create,update" json:"search_backpressure,omitempty"` + // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=1000000 // Maximum number of aggregation buckets allowed in a single response. OpenSearch default value is used when this is not defined. SearchMaxBuckets *int `groups:"create,update" json:"search_max_buckets,omitempty"` + // Shard indexing back pressure settings + ShardIndexingPressure *ShardIndexingPressure `groups:"create,update" json:"shard_indexing_pressure,omitempty"` + // +kubebuilder:validation:Minimum=10 // +kubebuilder:validation:Maximum=2000 // Size for the thread pool queue. See documentation for exact details. @@ -572,6 +748,9 @@ type S3Migration struct { // S3 region Region string `groups:"create,update" json:"region"` + // If true, restore the cluster state. Defaults to false + RestoreGlobalState *bool `groups:"create,update" json:"restore_global_state,omitempty"` + // +kubebuilder:validation:Pattern=`^[^\r\n]*$` // AWS secret key SecretKey string `groups:"create,update" json:"secret_key"` diff --git a/api/v1alpha1/userconfig/service/opensearch/zz_generated.deepcopy.go b/api/v1alpha1/userconfig/service/opensearch/zz_generated.deepcopy.go index db7997131..f0dcedf56 100644 --- a/api/v1alpha1/userconfig/service/opensearch/zz_generated.deepcopy.go +++ b/api/v1alpha1/userconfig/service/opensearch/zz_generated.deepcopy.go @@ -59,6 +59,11 @@ func (in *AzureMigration) DeepCopyInto(out *AzureMigration) { *out = new(string) **out = **in } + if in.RestoreGlobalState != nil { + in, out := &in.RestoreGlobalState, &out.RestoreGlobalState + *out = new(bool) + **out = **in + } if in.SasToken != nil { in, out := &in.SasToken, &out.SasToken *out = new(string) @@ -94,6 +99,11 @@ func (in *GcsMigration) DeepCopyInto(out *GcsMigration) { *out = new(string) **out = **in } + if in.RestoreGlobalState != nil { + in, out := &in.RestoreGlobalState, &out.RestoreGlobalState + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GcsMigration. @@ -311,6 +321,56 @@ func (in *IpRateLimiting) DeepCopy() *IpRateLimiting { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Node) DeepCopyInto(out *Node) { + *out = *in + if in.SoftLimit != nil { + in, out := &in.SoftLimit, &out.SoftLimit + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Node. +func (in *Node) DeepCopy() *Node { + if in == nil { + return nil + } + out := new(Node) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeDuress) DeepCopyInto(out *NodeDuress) { + *out = *in + if in.CpuThreshold != nil { + in, out := &in.CpuThreshold, &out.CpuThreshold + *out = new(float64) + **out = **in + } + if in.HeapThreshold != nil { + in, out := &in.HeapThreshold, &out.HeapThreshold + *out = new(float64) + **out = **in + } + if in.NumSuccessiveBreaches != nil { + in, out := &in.NumSuccessiveBreaches, &out.NumSuccessiveBreaches + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeDuress. +func (in *NodeDuress) DeepCopy() *NodeDuress { + if in == nil { + return nil + } + out := new(NodeDuress) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Openid) DeepCopyInto(out *Openid) { *out = *in @@ -529,11 +589,21 @@ func (in *Opensearch) DeepCopyInto(out *Opensearch) { *out = new(string) **out = **in } + if in.SearchBackpressure != nil { + in, out := &in.SearchBackpressure, &out.SearchBackpressure + *out = new(SearchBackpressure) + (*in).DeepCopyInto(*out) + } if in.SearchMaxBuckets != nil { in, out := &in.SearchMaxBuckets, &out.SearchMaxBuckets *out = new(int) **out = **in } + if in.ShardIndexingPressure != nil { + in, out := &in.ShardIndexingPressure, &out.ShardIndexingPressure + *out = new(ShardIndexingPressure) + (*in).DeepCopyInto(*out) + } if in.ThreadPoolAnalyzeQueueSize != nil { in, out := &in.ThreadPoolAnalyzeQueueSize, &out.ThreadPoolAnalyzeQueueSize *out = new(int) @@ -783,6 +853,61 @@ func (in *OpensearchUserConfig) DeepCopy() *OpensearchUserConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OperatingFactor) DeepCopyInto(out *OperatingFactor) { + *out = *in + if in.Lower != nil { + in, out := &in.Lower, &out.Lower + *out = new(float64) + **out = **in + } + if in.Optimal != nil { + in, out := &in.Optimal, &out.Optimal + *out = new(float64) + **out = **in + } + if in.Upper != nil { + in, out := &in.Upper, &out.Upper + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingFactor. +func (in *OperatingFactor) DeepCopy() *OperatingFactor { + if in == nil { + return nil + } + out := new(OperatingFactor) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrimaryParameter) DeepCopyInto(out *PrimaryParameter) { + *out = *in + if in.Node != nil { + in, out := &in.Node, &out.Node + *out = new(Node) + (*in).DeepCopyInto(*out) + } + if in.Shard != nil { + in, out := &in.Shard, &out.Shard + *out = new(Shard) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrimaryParameter. +func (in *PrimaryParameter) DeepCopy() *PrimaryParameter { + if in == nil { + return nil + } + out := new(PrimaryParameter) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PrivateAccess) DeepCopyInto(out *PrivateAccess) { *out = *in @@ -896,6 +1021,11 @@ func (in *S3Migration) DeepCopyInto(out *S3Migration) { *out = new(string) **out = **in } + if in.RestoreGlobalState != nil { + in, out := &in.RestoreGlobalState, &out.RestoreGlobalState + *out = new(bool) + **out = **in + } if in.ServerSideEncryption != nil { in, out := &in.ServerSideEncryption, &out.ServerSideEncryption *out = new(bool) @@ -942,3 +1072,213 @@ func (in *Saml) DeepCopy() *Saml { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SearchBackpressure) DeepCopyInto(out *SearchBackpressure) { + *out = *in + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.NodeDuress != nil { + in, out := &in.NodeDuress, &out.NodeDuress + *out = new(NodeDuress) + (*in).DeepCopyInto(*out) + } + if in.SearchShardTask != nil { + in, out := &in.SearchShardTask, &out.SearchShardTask + *out = new(SearchShardTask) + (*in).DeepCopyInto(*out) + } + if in.SearchTask != nil { + in, out := &in.SearchTask, &out.SearchTask + *out = new(SearchTask) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchBackpressure. +func (in *SearchBackpressure) DeepCopy() *SearchBackpressure { + if in == nil { + return nil + } + out := new(SearchBackpressure) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SearchShardTask) DeepCopyInto(out *SearchShardTask) { + *out = *in + if in.CancellationBurst != nil { + in, out := &in.CancellationBurst, &out.CancellationBurst + *out = new(float64) + **out = **in + } + if in.CancellationRate != nil { + in, out := &in.CancellationRate, &out.CancellationRate + *out = new(float64) + **out = **in + } + if in.CancellationRatio != nil { + in, out := &in.CancellationRatio, &out.CancellationRatio + *out = new(float64) + **out = **in + } + if in.CpuTimeMillisThreshold != nil { + in, out := &in.CpuTimeMillisThreshold, &out.CpuTimeMillisThreshold + *out = new(int) + **out = **in + } + if in.ElapsedTimeMillisThreshold != nil { + in, out := &in.ElapsedTimeMillisThreshold, &out.ElapsedTimeMillisThreshold + *out = new(int) + **out = **in + } + if in.HeapMovingAverageWindowSize != nil { + in, out := &in.HeapMovingAverageWindowSize, &out.HeapMovingAverageWindowSize + *out = new(int) + **out = **in + } + if in.HeapPercentThreshold != nil { + in, out := &in.HeapPercentThreshold, &out.HeapPercentThreshold + *out = new(float64) + **out = **in + } + if in.HeapVariance != nil { + in, out := &in.HeapVariance, &out.HeapVariance + *out = new(float64) + **out = **in + } + if in.TotalHeapPercentThreshold != nil { + in, out := &in.TotalHeapPercentThreshold, &out.TotalHeapPercentThreshold + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchShardTask. +func (in *SearchShardTask) DeepCopy() *SearchShardTask { + if in == nil { + return nil + } + out := new(SearchShardTask) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SearchTask) DeepCopyInto(out *SearchTask) { + *out = *in + if in.CancellationBurst != nil { + in, out := &in.CancellationBurst, &out.CancellationBurst + *out = new(float64) + **out = **in + } + if in.CancellationRate != nil { + in, out := &in.CancellationRate, &out.CancellationRate + *out = new(float64) + **out = **in + } + if in.CancellationRatio != nil { + in, out := &in.CancellationRatio, &out.CancellationRatio + *out = new(float64) + **out = **in + } + if in.CpuTimeMillisThreshold != nil { + in, out := &in.CpuTimeMillisThreshold, &out.CpuTimeMillisThreshold + *out = new(int) + **out = **in + } + if in.ElapsedTimeMillisThreshold != nil { + in, out := &in.ElapsedTimeMillisThreshold, &out.ElapsedTimeMillisThreshold + *out = new(int) + **out = **in + } + if in.HeapMovingAverageWindowSize != nil { + in, out := &in.HeapMovingAverageWindowSize, &out.HeapMovingAverageWindowSize + *out = new(int) + **out = **in + } + if in.HeapPercentThreshold != nil { + in, out := &in.HeapPercentThreshold, &out.HeapPercentThreshold + *out = new(float64) + **out = **in + } + if in.HeapVariance != nil { + in, out := &in.HeapVariance, &out.HeapVariance + *out = new(float64) + **out = **in + } + if in.TotalHeapPercentThreshold != nil { + in, out := &in.TotalHeapPercentThreshold, &out.TotalHeapPercentThreshold + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchTask. +func (in *SearchTask) DeepCopy() *SearchTask { + if in == nil { + return nil + } + out := new(SearchTask) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Shard) DeepCopyInto(out *Shard) { + *out = *in + if in.MinLimit != nil { + in, out := &in.MinLimit, &out.MinLimit + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Shard. +func (in *Shard) DeepCopy() *Shard { + if in == nil { + return nil + } + out := new(Shard) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShardIndexingPressure) DeepCopyInto(out *ShardIndexingPressure) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Enforced != nil { + in, out := &in.Enforced, &out.Enforced + *out = new(bool) + **out = **in + } + if in.OperatingFactor != nil { + in, out := &in.OperatingFactor, &out.OperatingFactor + *out = new(OperatingFactor) + (*in).DeepCopyInto(*out) + } + if in.PrimaryParameter != nil { + in, out := &in.PrimaryParameter, &out.PrimaryParameter + *out = new(PrimaryParameter) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardIndexingPressure. +func (in *ShardIndexingPressure) DeepCopy() *ShardIndexingPressure { + if in == nil { + return nil + } + out := new(ShardIndexingPressure) + in.DeepCopyInto(out) + return out +} diff --git a/api/v1alpha1/userconfig/service/redis/redis.go b/api/v1alpha1/userconfig/service/redis/redis.go index 6b0f3bb5f..325d8d5ab 100644 --- a/api/v1alpha1/userconfig/service/redis/redis.go +++ b/api/v1alpha1/userconfig/service/redis/redis.go @@ -167,7 +167,7 @@ type RedisUserConfig struct { RedisSsl *bool `groups:"create,update" json:"redis_ssl,omitempty"` // +kubebuilder:validation:Minimum=0 - // +kubebuilder:validation:Maximum=31536000 + // +kubebuilder:validation:Maximum=2073600 // Redis idle connection timeout in seconds RedisTimeout *int `groups:"create,update" json:"redis_timeout,omitempty"` diff --git a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml index 56772861d..8bf50fc0a 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml @@ -280,6 +280,11 @@ spec: should be specified pattern: ^[^\r\n]*$ type: string + restore_global_state: + description: + If true, restore the cluster state. Defaults + to false + type: boolean sas_token: description: A shared access signatures (SAS) token. One of @@ -350,6 +355,11 @@ spec: you specify. pattern: ^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$ type: string + restore_global_state: + description: + If true, restore the cluster state. Defaults + to false + type: boolean snapshot_name: description: The snapshot name to restore from pattern: ^[^\r\n]*$ @@ -896,6 +906,191 @@ spec: maxLength: 1024 pattern: ^[^\r\n]*$ type: string + search_backpressure: + description: Search Backpressure Settings + properties: + mode: + description: + The search backpressure mode. Valid values + are monitor_only, enforced, or disabled. Default is + monitor_only + enum: + - monitor_only + - enforced + - disabled + type: string + node_duress: + description: Node duress settings + properties: + cpu_threshold: + description: + The CPU usage threshold (as a percentage) + required for a node to be considered to be under + duress. Default is 0.9 + maximum: 1 + minimum: 0 + type: number + heap_threshold: + description: + The heap usage threshold (as a percentage) + required for a node to be considered to be under + duress. Default is 0.7 + maximum: 1 + minimum: 0 + type: number + num_successive_breaches: + description: + The number of successive limit breaches + after which the node is considered to be under duress. + Default is 3 + minimum: 1 + type: integer + type: object + search_shard_task: + description: Search shard settings + properties: + cancellation_burst: + description: + The maximum number of search tasks to + cancel in a single iteration of the observer thread. + Default is 10.0 + minimum: 1 + type: number + cancellation_rate: + description: + The maximum number of tasks to cancel + per millisecond of elapsed time. Default is 0.003 + minimum: 0 + type: number + cancellation_ratio: + description: + The maximum number of tasks to cancel, + as a percentage of successful task completions. + Default is 0.1 + maximum: 1 + minimum: 0 + type: number + cpu_time_millis_threshold: + description: + The CPU usage threshold (in milliseconds) + required for a single search shard task before it + is considered for cancellation. Default is 15000 + minimum: 0 + type: integer + elapsed_time_millis_threshold: + description: + The elapsed time threshold (in milliseconds) + required for a single search shard task before it + is considered for cancellation. Default is 30000 + minimum: 0 + type: integer + heap_moving_average_window_size: + description: + The number of previously completed search + shard tasks to consider when calculating the rolling + average of heap usage. Default is 100 + minimum: 0 + type: integer + heap_percent_threshold: + description: + The heap usage threshold (as a percentage) + required for a single search shard task before it + is considered for cancellation. Default is 0.5 + maximum: 1 + minimum: 0 + type: number + heap_variance: + description: + The minimum variance required for a single + search shard task’s heap usage compared to the rolling + average of previously completed tasks before it + is considered for cancellation. Default is 2.0 + minimum: 0 + type: number + total_heap_percent_threshold: + description: + The heap usage threshold (as a percentage) + required for the sum of heap usages of all search + shard tasks before cancellation is applied. Default + is 0.5 + maximum: 1 + minimum: 0 + type: number + type: object + search_task: + description: Search task settings + properties: + cancellation_burst: + description: + The maximum number of search tasks to + cancel in a single iteration of the observer thread. + Default is 5.0 + minimum: 1 + type: number + cancellation_rate: + description: + The maximum number of search tasks to + cancel per millisecond of elapsed time. Default + is 0.003 + minimum: 0 + type: number + cancellation_ratio: + description: + The maximum number of search tasks to + cancel, as a percentage of successful search task + completions. Default is 0.1 + maximum: 1 + minimum: 0 + type: number + cpu_time_millis_threshold: + description: + The CPU usage threshold (in milliseconds) + required for an individual parent task before it + is considered for cancellation. Default is 30000 + minimum: 0 + type: integer + elapsed_time_millis_threshold: + description: + The elapsed time threshold (in milliseconds) + required for an individual parent task before it + is considered for cancellation. Default is 45000 + minimum: 0 + type: integer + heap_moving_average_window_size: + description: + The window size used to calculate the + rolling average of the heap usage for the completed + parent tasks. Default is 10 + minimum: 0 + type: integer + heap_percent_threshold: + description: + The heap usage threshold (as a percentage) + required for an individual parent task before it + is considered for cancellation. Default is 0.2 + maximum: 1 + minimum: 0 + type: number + heap_variance: + description: + The heap usage variance required for + an individual parent task before it is considered + for cancellation. A task is considered for cancellation + when taskHeapUsage is greater than or equal to heapUsageMovingAverage + * variance. Default is 2.0 + minimum: 0 + type: number + total_heap_percent_threshold: + description: + The heap usage threshold (as a percentage) + required for the sum of heap usages of all search + tasks before cancellation is applied. Default is + 0.5 + maximum: 1 + minimum: 0 + type: number + type: object + type: object search_max_buckets: description: Maximum number of aggregation buckets allowed @@ -904,6 +1099,91 @@ spec: maximum: 1000000 minimum: 1 type: integer + shard_indexing_pressure: + description: Shard indexing back pressure settings + properties: + enabled: + description: + Enable or disable shard indexing backpressure. + Default is false + type: boolean + enforced: + description: + Run shard indexing backpressure in shadow + mode or enforced mode. In shadow mode (value + set as false), shard indexing backpressure tracks all + granular-level metrics, but it doesn’t actually + reject any indexing requests. In enforced + mode (value set as true), shard indexing + backpressure rejects any requests to the cluster that + might cause a dip in its performance. Default + is false + type: boolean + operating_factor: + description: Operating factor + properties: + lower: + description: + Specify the lower occupancy limit of + the allocated quota of memory for the shard. If + the total memory usage of a shard is below this + limit, shard indexing backpressure + decreases the current allocated memory for that + shard. Default is 0.75 + minimum: 0 + type: number + optimal: + description: + Specify the optimal occupancy of the + allocated quota of memory for the shard. If + the total memory usage of a shard is at this level, shard + indexing backpressure doesn’t change the current + allocated memory for that shard. Default + is 0.85 + minimum: 0 + type: number + upper: + description: + Specify the upper occupancy limit of + the allocated quota of memory for the shard. If + the total memory usage of a shard is above this + limit, shard indexing backpressure + increases the current allocated memory for that + shard. Default is 0.95 + minimum: 0 + type: number + type: object + primary_parameter: + description: Primary parameter + properties: + node: + properties: + soft_limit: + description: + Define the percentage of the node-level + memory threshold + that acts as a soft indicator for strain on + a node. Default + is 0.7 + minimum: 0 + type: number + type: object + shard: + properties: + min_limit: + description: + Specify the minimum assigned quota + for a new shard in any role (coordinator, primary, + or replica). Shard + indexing backpressure increases or decreases + this allocated quota based on the inflow of + traffic for the shard. Default + is 0.001 + minimum: 0 + type: number + type: object + type: object + type: object thread_pool_analyze_queue_size: description: Size for the thread pool queue. See documentation @@ -1153,6 +1433,11 @@ spec: description: S3 region pattern: ^[^\r\n]*$ type: string + restore_global_state: + description: + If true, restore the cluster state. Defaults + to false + type: boolean secret_key: description: AWS secret key pattern: ^[^\r\n]*$ diff --git a/charts/aiven-operator-crds/templates/aiven.io_redis.yaml b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml index dbf2f828f..34f54b715 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_redis.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml @@ -473,7 +473,7 @@ spec: type: boolean redis_timeout: description: Redis idle connection timeout in seconds - maximum: 31536000 + maximum: 2073600 minimum: 0 type: integer redis_version: diff --git a/config/crd/bases/aiven.io_opensearches.yaml b/config/crd/bases/aiven.io_opensearches.yaml index 56772861d..8bf50fc0a 100644 --- a/config/crd/bases/aiven.io_opensearches.yaml +++ b/config/crd/bases/aiven.io_opensearches.yaml @@ -280,6 +280,11 @@ spec: should be specified pattern: ^[^\r\n]*$ type: string + restore_global_state: + description: + If true, restore the cluster state. Defaults + to false + type: boolean sas_token: description: A shared access signatures (SAS) token. One of @@ -350,6 +355,11 @@ spec: you specify. pattern: ^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$ type: string + restore_global_state: + description: + If true, restore the cluster state. Defaults + to false + type: boolean snapshot_name: description: The snapshot name to restore from pattern: ^[^\r\n]*$ @@ -896,6 +906,191 @@ spec: maxLength: 1024 pattern: ^[^\r\n]*$ type: string + search_backpressure: + description: Search Backpressure Settings + properties: + mode: + description: + The search backpressure mode. Valid values + are monitor_only, enforced, or disabled. Default is + monitor_only + enum: + - monitor_only + - enforced + - disabled + type: string + node_duress: + description: Node duress settings + properties: + cpu_threshold: + description: + The CPU usage threshold (as a percentage) + required for a node to be considered to be under + duress. Default is 0.9 + maximum: 1 + minimum: 0 + type: number + heap_threshold: + description: + The heap usage threshold (as a percentage) + required for a node to be considered to be under + duress. Default is 0.7 + maximum: 1 + minimum: 0 + type: number + num_successive_breaches: + description: + The number of successive limit breaches + after which the node is considered to be under duress. + Default is 3 + minimum: 1 + type: integer + type: object + search_shard_task: + description: Search shard settings + properties: + cancellation_burst: + description: + The maximum number of search tasks to + cancel in a single iteration of the observer thread. + Default is 10.0 + minimum: 1 + type: number + cancellation_rate: + description: + The maximum number of tasks to cancel + per millisecond of elapsed time. Default is 0.003 + minimum: 0 + type: number + cancellation_ratio: + description: + The maximum number of tasks to cancel, + as a percentage of successful task completions. + Default is 0.1 + maximum: 1 + minimum: 0 + type: number + cpu_time_millis_threshold: + description: + The CPU usage threshold (in milliseconds) + required for a single search shard task before it + is considered for cancellation. Default is 15000 + minimum: 0 + type: integer + elapsed_time_millis_threshold: + description: + The elapsed time threshold (in milliseconds) + required for a single search shard task before it + is considered for cancellation. Default is 30000 + minimum: 0 + type: integer + heap_moving_average_window_size: + description: + The number of previously completed search + shard tasks to consider when calculating the rolling + average of heap usage. Default is 100 + minimum: 0 + type: integer + heap_percent_threshold: + description: + The heap usage threshold (as a percentage) + required for a single search shard task before it + is considered for cancellation. Default is 0.5 + maximum: 1 + minimum: 0 + type: number + heap_variance: + description: + The minimum variance required for a single + search shard task’s heap usage compared to the rolling + average of previously completed tasks before it + is considered for cancellation. Default is 2.0 + minimum: 0 + type: number + total_heap_percent_threshold: + description: + The heap usage threshold (as a percentage) + required for the sum of heap usages of all search + shard tasks before cancellation is applied. Default + is 0.5 + maximum: 1 + minimum: 0 + type: number + type: object + search_task: + description: Search task settings + properties: + cancellation_burst: + description: + The maximum number of search tasks to + cancel in a single iteration of the observer thread. + Default is 5.0 + minimum: 1 + type: number + cancellation_rate: + description: + The maximum number of search tasks to + cancel per millisecond of elapsed time. Default + is 0.003 + minimum: 0 + type: number + cancellation_ratio: + description: + The maximum number of search tasks to + cancel, as a percentage of successful search task + completions. Default is 0.1 + maximum: 1 + minimum: 0 + type: number + cpu_time_millis_threshold: + description: + The CPU usage threshold (in milliseconds) + required for an individual parent task before it + is considered for cancellation. Default is 30000 + minimum: 0 + type: integer + elapsed_time_millis_threshold: + description: + The elapsed time threshold (in milliseconds) + required for an individual parent task before it + is considered for cancellation. Default is 45000 + minimum: 0 + type: integer + heap_moving_average_window_size: + description: + The window size used to calculate the + rolling average of the heap usage for the completed + parent tasks. Default is 10 + minimum: 0 + type: integer + heap_percent_threshold: + description: + The heap usage threshold (as a percentage) + required for an individual parent task before it + is considered for cancellation. Default is 0.2 + maximum: 1 + minimum: 0 + type: number + heap_variance: + description: + The heap usage variance required for + an individual parent task before it is considered + for cancellation. A task is considered for cancellation + when taskHeapUsage is greater than or equal to heapUsageMovingAverage + * variance. Default is 2.0 + minimum: 0 + type: number + total_heap_percent_threshold: + description: + The heap usage threshold (as a percentage) + required for the sum of heap usages of all search + tasks before cancellation is applied. Default is + 0.5 + maximum: 1 + minimum: 0 + type: number + type: object + type: object search_max_buckets: description: Maximum number of aggregation buckets allowed @@ -904,6 +1099,91 @@ spec: maximum: 1000000 minimum: 1 type: integer + shard_indexing_pressure: + description: Shard indexing back pressure settings + properties: + enabled: + description: + Enable or disable shard indexing backpressure. + Default is false + type: boolean + enforced: + description: + Run shard indexing backpressure in shadow + mode or enforced mode. In shadow mode (value + set as false), shard indexing backpressure tracks all + granular-level metrics, but it doesn’t actually + reject any indexing requests. In enforced + mode (value set as true), shard indexing + backpressure rejects any requests to the cluster that + might cause a dip in its performance. Default + is false + type: boolean + operating_factor: + description: Operating factor + properties: + lower: + description: + Specify the lower occupancy limit of + the allocated quota of memory for the shard. If + the total memory usage of a shard is below this + limit, shard indexing backpressure + decreases the current allocated memory for that + shard. Default is 0.75 + minimum: 0 + type: number + optimal: + description: + Specify the optimal occupancy of the + allocated quota of memory for the shard. If + the total memory usage of a shard is at this level, shard + indexing backpressure doesn’t change the current + allocated memory for that shard. Default + is 0.85 + minimum: 0 + type: number + upper: + description: + Specify the upper occupancy limit of + the allocated quota of memory for the shard. If + the total memory usage of a shard is above this + limit, shard indexing backpressure + increases the current allocated memory for that + shard. Default is 0.95 + minimum: 0 + type: number + type: object + primary_parameter: + description: Primary parameter + properties: + node: + properties: + soft_limit: + description: + Define the percentage of the node-level + memory threshold + that acts as a soft indicator for strain on + a node. Default + is 0.7 + minimum: 0 + type: number + type: object + shard: + properties: + min_limit: + description: + Specify the minimum assigned quota + for a new shard in any role (coordinator, primary, + or replica). Shard + indexing backpressure increases or decreases + this allocated quota based on the inflow of + traffic for the shard. Default + is 0.001 + minimum: 0 + type: number + type: object + type: object + type: object thread_pool_analyze_queue_size: description: Size for the thread pool queue. See documentation @@ -1153,6 +1433,11 @@ spec: description: S3 region pattern: ^[^\r\n]*$ type: string + restore_global_state: + description: + If true, restore the cluster state. Defaults + to false + type: boolean secret_key: description: AWS secret key pattern: ^[^\r\n]*$ diff --git a/config/crd/bases/aiven.io_redis.yaml b/config/crd/bases/aiven.io_redis.yaml index dbf2f828f..34f54b715 100644 --- a/config/crd/bases/aiven.io_redis.yaml +++ b/config/crd/bases/aiven.io_redis.yaml @@ -473,7 +473,7 @@ spec: type: boolean redis_timeout: description: Redis idle connection timeout in seconds - maximum: 31536000 + maximum: 2073600 minimum: 0 type: integer redis_version: diff --git a/docs/docs/api-reference/opensearch.md b/docs/docs/api-reference/opensearch.md index 43de9a773..f010179f5 100644 --- a/docs/docs/api-reference/opensearch.md +++ b/docs/docs/api-reference/opensearch.md @@ -238,6 +238,7 @@ Azure migration settings. - [`endpoint_suffix`](#spec.userConfig.azure_migration.endpoint_suffix-property){: name='spec.userConfig.azure_migration.endpoint_suffix-property'} (string, Pattern: `^[^\r\n]*$`). Defines the DNS suffix for Azure Storage endpoints. - [`indices`](#spec.userConfig.azure_migration.indices-property){: name='spec.userConfig.azure_migration.indices-property'} (string). A comma-delimited list of indices to restore from the snapshot. Multi-index syntax is supported. By default, a restore operation includes all data streams and indices in the snapshot. If this argument is provided, the restore operation only includes the data streams and indices that you specify. - [`key`](#spec.userConfig.azure_migration.key-property){: name='spec.userConfig.azure_migration.key-property'} (string, Pattern: `^[^\r\n]*$`). Azure account secret key. One of key or sas_token should be specified. +- [`restore_global_state`](#spec.userConfig.azure_migration.restore_global_state-property){: name='spec.userConfig.azure_migration.restore_global_state-property'} (boolean). If true, restore the cluster state. Defaults to false. - [`sas_token`](#spec.userConfig.azure_migration.sas_token-property){: name='spec.userConfig.azure_migration.sas_token-property'} (string, Pattern: `^[^\r\n]*$`). A shared access signatures (SAS) token. One of key or sas_token should be specified. ### gcs_migration {: #spec.userConfig.gcs_migration } @@ -258,6 +259,7 @@ Google Cloud Storage migration settings. - [`chunk_size`](#spec.userConfig.gcs_migration.chunk_size-property){: name='spec.userConfig.gcs_migration.chunk_size-property'} (string, Pattern: `^[^\r\n]*$`). Big files can be broken down into chunks during snapshotting if needed. Should be the same as for the 3rd party repository. - [`compress`](#spec.userConfig.gcs_migration.compress-property){: name='spec.userConfig.gcs_migration.compress-property'} (boolean). when set to true metadata files are stored in compressed format. - [`indices`](#spec.userConfig.gcs_migration.indices-property){: name='spec.userConfig.gcs_migration.indices-property'} (string). A comma-delimited list of indices to restore from the snapshot. Multi-index syntax is supported. By default, a restore operation includes all data streams and indices in the snapshot. If this argument is provided, the restore operation only includes the data streams and indices that you specify. +- [`restore_global_state`](#spec.userConfig.gcs_migration.restore_global_state-property){: name='spec.userConfig.gcs_migration.restore_global_state-property'} (boolean). If true, restore the cluster state. Defaults to false. ### index_patterns {: #spec.userConfig.index_patterns } @@ -378,7 +380,9 @@ OpenSearch settings. - [`plugins_alerting_filter_by_backend_roles`](#spec.userConfig.opensearch.plugins_alerting_filter_by_backend_roles-property){: name='spec.userConfig.opensearch.plugins_alerting_filter_by_backend_roles-property'} (boolean). Enable or disable filtering of alerting by backend roles. Requires Security plugin. Defaults to false. - [`reindex_remote_whitelist`](#spec.userConfig.opensearch.reindex_remote_whitelist-property){: name='spec.userConfig.opensearch.reindex_remote_whitelist-property'} (array of strings, MaxItems: 32). Whitelisted addresses for reindexing. Changing this value will cause all OpenSearch instances to restart. - [`script_max_compilations_rate`](#spec.userConfig.opensearch.script_max_compilations_rate-property){: name='spec.userConfig.opensearch.script_max_compilations_rate-property'} (string, Pattern: `^[^\r\n]*$`, MaxLength: 1024). Script compilation circuit breaker limits the number of inline script compilations within a period of time. Default is use-context. +- [`search_backpressure`](#spec.userConfig.opensearch.search_backpressure-property){: name='spec.userConfig.opensearch.search_backpressure-property'} (object). Search Backpressure Settings. See below for [nested schema](#spec.userConfig.opensearch.search_backpressure). - [`search_max_buckets`](#spec.userConfig.opensearch.search_max_buckets-property){: name='spec.userConfig.opensearch.search_max_buckets-property'} (integer, Minimum: 1, Maximum: 1000000). Maximum number of aggregation buckets allowed in a single response. OpenSearch default value is used when this is not defined. +- [`shard_indexing_pressure`](#spec.userConfig.opensearch.shard_indexing_pressure-property){: name='spec.userConfig.opensearch.shard_indexing_pressure-property'} (object). Shard indexing back pressure settings. See below for [nested schema](#spec.userConfig.opensearch.shard_indexing_pressure). - [`thread_pool_analyze_queue_size`](#spec.userConfig.opensearch.thread_pool_analyze_queue_size-property){: name='spec.userConfig.opensearch.thread_pool_analyze_queue_size-property'} (integer, Minimum: 10, Maximum: 2000). Size for the thread pool queue. See documentation for exact details. - [`thread_pool_analyze_size`](#spec.userConfig.opensearch.thread_pool_analyze_size-property){: name='spec.userConfig.opensearch.thread_pool_analyze_size-property'} (integer, Minimum: 1, Maximum: 128). Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value. - [`thread_pool_force_merge_size`](#spec.userConfig.opensearch.thread_pool_force_merge_size-property){: name='spec.userConfig.opensearch.thread_pool_force_merge_size-property'} (integer, Minimum: 1, Maximum: 128). Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value. @@ -431,6 +435,119 @@ IP address rate limiting settings. - [`time_window_seconds`](#spec.userConfig.opensearch.auth_failure_listeners.ip_rate_limiting.time_window_seconds-property){: name='spec.userConfig.opensearch.auth_failure_listeners.ip_rate_limiting.time_window_seconds-property'} (integer, Minimum: 1, Maximum: 36000). The window of time in which the value for `allowed_tries` is enforced. - [`type`](#spec.userConfig.opensearch.auth_failure_listeners.ip_rate_limiting.type-property){: name='spec.userConfig.opensearch.auth_failure_listeners.ip_rate_limiting.type-property'} (string, Enum: `ip`, MaxLength: 1024). The type of rate limiting. +#### search_backpressure {: #spec.userConfig.opensearch.search_backpressure } + +_Appears on [`spec.userConfig.opensearch`](#spec.userConfig.opensearch)._ + +Search Backpressure Settings. + +**Optional** + +- [`mode`](#spec.userConfig.opensearch.search_backpressure.mode-property){: name='spec.userConfig.opensearch.search_backpressure.mode-property'} (string, Enum: `monitor_only`, `enforced`, `disabled`). The search backpressure mode. Valid values are monitor_only, enforced, or disabled. Default is monitor_only. +- [`node_duress`](#spec.userConfig.opensearch.search_backpressure.node_duress-property){: name='spec.userConfig.opensearch.search_backpressure.node_duress-property'} (object). Node duress settings. See below for [nested schema](#spec.userConfig.opensearch.search_backpressure.node_duress). +- [`search_shard_task`](#spec.userConfig.opensearch.search_backpressure.search_shard_task-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task-property'} (object). Search shard settings. See below for [nested schema](#spec.userConfig.opensearch.search_backpressure.search_shard_task). +- [`search_task`](#spec.userConfig.opensearch.search_backpressure.search_task-property){: name='spec.userConfig.opensearch.search_backpressure.search_task-property'} (object). Search task settings. See below for [nested schema](#spec.userConfig.opensearch.search_backpressure.search_task). + +##### node_duress {: #spec.userConfig.opensearch.search_backpressure.node_duress } + +_Appears on [`spec.userConfig.opensearch.search_backpressure`](#spec.userConfig.opensearch.search_backpressure)._ + +Node duress settings. + +**Optional** + +- [`cpu_threshold`](#spec.userConfig.opensearch.search_backpressure.node_duress.cpu_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.node_duress.cpu_threshold-property'} (number, Minimum: 0, Maximum: 1). The CPU usage threshold (as a percentage) required for a node to be considered to be under duress. Default is 0.9. +- [`heap_threshold`](#spec.userConfig.opensearch.search_backpressure.node_duress.heap_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.node_duress.heap_threshold-property'} (number, Minimum: 0, Maximum: 1). The heap usage threshold (as a percentage) required for a node to be considered to be under duress. Default is 0.7. +- [`num_successive_breaches`](#spec.userConfig.opensearch.search_backpressure.node_duress.num_successive_breaches-property){: name='spec.userConfig.opensearch.search_backpressure.node_duress.num_successive_breaches-property'} (integer, Minimum: 1). The number of successive limit breaches after which the node is considered to be under duress. Default is 3. + +##### search_shard_task {: #spec.userConfig.opensearch.search_backpressure.search_shard_task } + +_Appears on [`spec.userConfig.opensearch.search_backpressure`](#spec.userConfig.opensearch.search_backpressure)._ + +Search shard settings. + +**Optional** + +- [`cancellation_burst`](#spec.userConfig.opensearch.search_backpressure.search_shard_task.cancellation_burst-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task.cancellation_burst-property'} (number, Minimum: 1). The maximum number of search tasks to cancel in a single iteration of the observer thread. Default is 10.0. +- [`cancellation_rate`](#spec.userConfig.opensearch.search_backpressure.search_shard_task.cancellation_rate-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task.cancellation_rate-property'} (number, Minimum: 0). The maximum number of tasks to cancel per millisecond of elapsed time. Default is 0.003. +- [`cancellation_ratio`](#spec.userConfig.opensearch.search_backpressure.search_shard_task.cancellation_ratio-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task.cancellation_ratio-property'} (number, Minimum: 0, Maximum: 1). The maximum number of tasks to cancel, as a percentage of successful task completions. Default is 0.1. +- [`cpu_time_millis_threshold`](#spec.userConfig.opensearch.search_backpressure.search_shard_task.cpu_time_millis_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task.cpu_time_millis_threshold-property'} (integer, Minimum: 0). The CPU usage threshold (in milliseconds) required for a single search shard task before it is considered for cancellation. Default is 15000. +- [`elapsed_time_millis_threshold`](#spec.userConfig.opensearch.search_backpressure.search_shard_task.elapsed_time_millis_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task.elapsed_time_millis_threshold-property'} (integer, Minimum: 0). The elapsed time threshold (in milliseconds) required for a single search shard task before it is considered for cancellation. Default is 30000. +- [`heap_moving_average_window_size`](#spec.userConfig.opensearch.search_backpressure.search_shard_task.heap_moving_average_window_size-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task.heap_moving_average_window_size-property'} (integer, Minimum: 0). The number of previously completed search shard tasks to consider when calculating the rolling average of heap usage. Default is 100. +- [`heap_percent_threshold`](#spec.userConfig.opensearch.search_backpressure.search_shard_task.heap_percent_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task.heap_percent_threshold-property'} (number, Minimum: 0, Maximum: 1). The heap usage threshold (as a percentage) required for a single search shard task before it is considered for cancellation. Default is 0.5. +- [`heap_variance`](#spec.userConfig.opensearch.search_backpressure.search_shard_task.heap_variance-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task.heap_variance-property'} (number, Minimum: 0). The minimum variance required for a single search shard task’s heap usage compared to the rolling average of previously completed tasks before it is considered for cancellation. Default is 2.0. +- [`total_heap_percent_threshold`](#spec.userConfig.opensearch.search_backpressure.search_shard_task.total_heap_percent_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.search_shard_task.total_heap_percent_threshold-property'} (number, Minimum: 0, Maximum: 1). The heap usage threshold (as a percentage) required for the sum of heap usages of all search shard tasks before cancellation is applied. Default is 0.5. + +##### search_task {: #spec.userConfig.opensearch.search_backpressure.search_task } + +_Appears on [`spec.userConfig.opensearch.search_backpressure`](#spec.userConfig.opensearch.search_backpressure)._ + +Search task settings. + +**Optional** + +- [`cancellation_burst`](#spec.userConfig.opensearch.search_backpressure.search_task.cancellation_burst-property){: name='spec.userConfig.opensearch.search_backpressure.search_task.cancellation_burst-property'} (number, Minimum: 1). The maximum number of search tasks to cancel in a single iteration of the observer thread. Default is 5.0. +- [`cancellation_rate`](#spec.userConfig.opensearch.search_backpressure.search_task.cancellation_rate-property){: name='spec.userConfig.opensearch.search_backpressure.search_task.cancellation_rate-property'} (number, Minimum: 0). The maximum number of search tasks to cancel per millisecond of elapsed time. Default is 0.003. +- [`cancellation_ratio`](#spec.userConfig.opensearch.search_backpressure.search_task.cancellation_ratio-property){: name='spec.userConfig.opensearch.search_backpressure.search_task.cancellation_ratio-property'} (number, Minimum: 0, Maximum: 1). The maximum number of search tasks to cancel, as a percentage of successful search task completions. Default is 0.1. +- [`cpu_time_millis_threshold`](#spec.userConfig.opensearch.search_backpressure.search_task.cpu_time_millis_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.search_task.cpu_time_millis_threshold-property'} (integer, Minimum: 0). The CPU usage threshold (in milliseconds) required for an individual parent task before it is considered for cancellation. Default is 30000. +- [`elapsed_time_millis_threshold`](#spec.userConfig.opensearch.search_backpressure.search_task.elapsed_time_millis_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.search_task.elapsed_time_millis_threshold-property'} (integer, Minimum: 0). The elapsed time threshold (in milliseconds) required for an individual parent task before it is considered for cancellation. Default is 45000. +- [`heap_moving_average_window_size`](#spec.userConfig.opensearch.search_backpressure.search_task.heap_moving_average_window_size-property){: name='spec.userConfig.opensearch.search_backpressure.search_task.heap_moving_average_window_size-property'} (integer, Minimum: 0). The window size used to calculate the rolling average of the heap usage for the completed parent tasks. Default is 10. +- [`heap_percent_threshold`](#spec.userConfig.opensearch.search_backpressure.search_task.heap_percent_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.search_task.heap_percent_threshold-property'} (number, Minimum: 0, Maximum: 1). The heap usage threshold (as a percentage) required for an individual parent task before it is considered for cancellation. Default is 0.2. +- [`heap_variance`](#spec.userConfig.opensearch.search_backpressure.search_task.heap_variance-property){: name='spec.userConfig.opensearch.search_backpressure.search_task.heap_variance-property'} (number, Minimum: 0). The heap usage variance required for an individual parent task before it is considered for cancellation. A task is considered for cancellation when taskHeapUsage is greater than or equal to heapUsageMovingAverage * variance. Default is 2.0. +- [`total_heap_percent_threshold`](#spec.userConfig.opensearch.search_backpressure.search_task.total_heap_percent_threshold-property){: name='spec.userConfig.opensearch.search_backpressure.search_task.total_heap_percent_threshold-property'} (number, Minimum: 0, Maximum: 1). The heap usage threshold (as a percentage) required for the sum of heap usages of all search tasks before cancellation is applied. Default is 0.5. + +#### shard_indexing_pressure {: #spec.userConfig.opensearch.shard_indexing_pressure } + +_Appears on [`spec.userConfig.opensearch`](#spec.userConfig.opensearch)._ + +Shard indexing back pressure settings. + +**Optional** + +- [`enabled`](#spec.userConfig.opensearch.shard_indexing_pressure.enabled-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.enabled-property'} (boolean). Enable or disable shard indexing backpressure. Default is false. +- [`enforced`](#spec.userConfig.opensearch.shard_indexing_pressure.enforced-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.enforced-property'} (boolean). Run shard indexing backpressure in shadow mode or enforced mode. In shadow mode (value set as false), shard indexing backpressure tracks all granular-level metrics, but it doesn’t actually reject any indexing requests. In enforced mode (value set as true), shard indexing backpressure rejects any requests to the cluster that might cause a dip in its performance. Default is false. +- [`operating_factor`](#spec.userConfig.opensearch.shard_indexing_pressure.operating_factor-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.operating_factor-property'} (object). Operating factor. See below for [nested schema](#spec.userConfig.opensearch.shard_indexing_pressure.operating_factor). +- [`primary_parameter`](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter-property'} (object). Primary parameter. See below for [nested schema](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter). + +##### operating_factor {: #spec.userConfig.opensearch.shard_indexing_pressure.operating_factor } + +_Appears on [`spec.userConfig.opensearch.shard_indexing_pressure`](#spec.userConfig.opensearch.shard_indexing_pressure)._ + +Operating factor. + +**Optional** + +- [`lower`](#spec.userConfig.opensearch.shard_indexing_pressure.operating_factor.lower-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.operating_factor.lower-property'} (number, Minimum: 0). Specify the lower occupancy limit of the allocated quota of memory for the shard. If the total memory usage of a shard is below this limit, shard indexing backpressure decreases the current allocated memory for that shard. Default is 0.75. +- [`optimal`](#spec.userConfig.opensearch.shard_indexing_pressure.operating_factor.optimal-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.operating_factor.optimal-property'} (number, Minimum: 0). Specify the optimal occupancy of the allocated quota of memory for the shard. If the total memory usage of a shard is at this level, shard indexing backpressure doesn’t change the current allocated memory for that shard. Default is 0.85. +- [`upper`](#spec.userConfig.opensearch.shard_indexing_pressure.operating_factor.upper-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.operating_factor.upper-property'} (number, Minimum: 0). Specify the upper occupancy limit of the allocated quota of memory for the shard. If the total memory usage of a shard is above this limit, shard indexing backpressure increases the current allocated memory for that shard. Default is 0.95. + +##### primary_parameter {: #spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter } + +_Appears on [`spec.userConfig.opensearch.shard_indexing_pressure`](#spec.userConfig.opensearch.shard_indexing_pressure)._ + +Primary parameter. + +**Optional** + +- [`node`](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.node-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.node-property'} (object). See below for [nested schema](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.node). +- [`shard`](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.shard-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.shard-property'} (object). See below for [nested schema](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.shard). + +###### node {: #spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.node } + +_Appears on [`spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter`](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter)._ + +**Required** + +- [`soft_limit`](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.node.soft_limit-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.node.soft_limit-property'} (number, Minimum: 0). Define the percentage of the node-level memory threshold that acts as a soft indicator for strain on a node. Default is 0.7. + +###### shard {: #spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.shard } + +_Appears on [`spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter`](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter)._ + +**Required** + +- [`min_limit`](#spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.shard.min_limit-property){: name='spec.userConfig.opensearch.shard_indexing_pressure.primary_parameter.shard.min_limit-property'} (number, Minimum: 0). Specify the minimum assigned quota for a new shard in any role (coordinator, primary, or replica). Shard indexing backpressure increases or decreases this allocated quota based on the inflow of traffic for the shard. Default is 0.001. + ### opensearch_dashboards {: #spec.userConfig.opensearch_dashboards } _Appears on [`spec.userConfig`](#spec.userConfig)._ @@ -500,6 +617,7 @@ AWS S3 / AWS S3 compatible migration settings. - [`compress`](#spec.userConfig.s3_migration.compress-property){: name='spec.userConfig.s3_migration.compress-property'} (boolean). when set to true metadata files are stored in compressed format. - [`endpoint`](#spec.userConfig.s3_migration.endpoint-property){: name='spec.userConfig.s3_migration.endpoint-property'} (string, Pattern: `^[^\r\n]*$`). The S3 service endpoint to connect to. If you are using an S3-compatible service then you should set this to the service’s endpoint. - [`indices`](#spec.userConfig.s3_migration.indices-property){: name='spec.userConfig.s3_migration.indices-property'} (string). A comma-delimited list of indices to restore from the snapshot. Multi-index syntax is supported. By default, a restore operation includes all data streams and indices in the snapshot. If this argument is provided, the restore operation only includes the data streams and indices that you specify. +- [`restore_global_state`](#spec.userConfig.s3_migration.restore_global_state-property){: name='spec.userConfig.s3_migration.restore_global_state-property'} (boolean). If true, restore the cluster state. Defaults to false. - [`server_side_encryption`](#spec.userConfig.s3_migration.server_side_encryption-property){: name='spec.userConfig.s3_migration.server_side_encryption-property'} (boolean). When set to true files are encrypted on server side. ### saml {: #spec.userConfig.saml } diff --git a/docs/docs/api-reference/redis.md b/docs/docs/api-reference/redis.md index 8bd077ef1..4090ef4dd 100644 --- a/docs/docs/api-reference/redis.md +++ b/docs/docs/api-reference/redis.md @@ -214,7 +214,7 @@ Redis specific user configuration options. - [`redis_persistence`](#spec.userConfig.redis_persistence-property){: name='spec.userConfig.redis_persistence-property'} (string, Enum: `off`, `rdb`). When persistence is `rdb`, Redis does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to the backup schedule for backup purposes. When persistence is `off`, no RDB dumps or backups are done, so data can be lost at any moment if the service is restarted for any reason, or if the service is powered off. Also, the service can't be forked. - [`redis_pubsub_client_output_buffer_limit`](#spec.userConfig.redis_pubsub_client_output_buffer_limit-property){: name='spec.userConfig.redis_pubsub_client_output_buffer_limit-property'} (integer, Minimum: 32, Maximum: 512). Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan. - [`redis_ssl`](#spec.userConfig.redis_ssl-property){: name='spec.userConfig.redis_ssl-property'} (boolean). Require SSL to access Redis. -- [`redis_timeout`](#spec.userConfig.redis_timeout-property){: name='spec.userConfig.redis_timeout-property'} (integer, Minimum: 0, Maximum: 31536000). Redis idle connection timeout in seconds. +- [`redis_timeout`](#spec.userConfig.redis_timeout-property){: name='spec.userConfig.redis_timeout-property'} (integer, Minimum: 0, Maximum: 2073600). Redis idle connection timeout in seconds. - [`redis_version`](#spec.userConfig.redis_version-property){: name='spec.userConfig.redis_version-property'} (string, Enum: `7.0`). Redis major version. - [`service_log`](#spec.userConfig.service_log-property){: name='spec.userConfig.service_log-property'} (boolean). Store logs for the service so that they are available in the HTTP API and console. - [`service_to_fork_from`](#spec.userConfig.service_to_fork_from-property){: name='spec.userConfig.service_to_fork_from-property'} (string, Immutable, Pattern: `^[a-z][-a-z0-9]{0,63}$|^$`, MaxLength: 64). Name of another service to fork from. This has effect only when a new service is being created. diff --git a/go.mod b/go.mod index e35e68457..1cfaafa15 100644 --- a/go.mod +++ b/go.mod @@ -5,10 +5,10 @@ go 1.22.0 toolchain go1.23.0 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.29.0 - github.com/aiven/aiven-go-client/v2 v2.28.0 - github.com/aiven/go-api-schemas v1.91.0 - github.com/aiven/go-client-codegen v0.41.0 + github.com/ClickHouse/clickhouse-go/v2 v2.30.0 + github.com/aiven/aiven-go-client/v2 v2.30.0 + github.com/aiven/go-api-schemas v1.94.0 + github.com/aiven/go-client-codegen v0.45.0 github.com/avast/retry-go v3.0.0+incompatible github.com/dave/jennifer v1.7.1 github.com/docker/go-units v0.5.0 @@ -35,7 +35,7 @@ require ( require ( github.com/ClickHouse/ch-go v0.61.5 // indirect - github.com/andybalholm/brotli v1.1.0 // indirect + github.com/andybalholm/brotli v1.1.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/go.sum b/go.sum index a93f2d6ad..6d4aeae14 100644 --- a/go.sum +++ b/go.sum @@ -35,21 +35,21 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.29.0 h1:Dj1w59RssRyLgGHXtYaWU0eIM1pJsu9nGPi/btmvAqw= -github.com/ClickHouse/clickhouse-go/v2 v2.29.0/go.mod h1:bLookq6qZJ4Ush/6tOAnJGh1Sf3Sa/nQoMn71p7ZCUE= -github.com/aiven/aiven-go-client/v2 v2.28.0 h1:P2UgIeUCwtDEgeeQkC1sdcWJHat1ViDc03QHS0OrUgQ= -github.com/aiven/aiven-go-client/v2 v2.28.0/go.mod h1:KdHfLIlIRZIfCSEBd39j1Q81jlSb6Nd+oCQKqERfnuA= -github.com/aiven/go-api-schemas v1.91.0 h1:jiJpRwFKf3IcuZtMIzDmNyICmX0ayqDYMh9QF0GoFZY= -github.com/aiven/go-api-schemas v1.91.0/go.mod h1:qS3E/3R+aKQbHsqXzNHqlXATY1kbVNzhiJvk2IDmADI= -github.com/aiven/go-client-codegen v0.41.0 h1:lFjl8njSqLmqbXzcHAD0nRBql/U8Ik5x68t+3f0kTnQ= -github.com/aiven/go-client-codegen v0.41.0/go.mod h1:FfbH32Xb+Hx5zeKTIug1Y8SfMeB+AKNRzxgrzkts2oA= +github.com/ClickHouse/clickhouse-go/v2 v2.30.0 h1:AG4D/hW39qa58+JHQIFOSnxyL46H6h2lrmGGk17dhFo= +github.com/ClickHouse/clickhouse-go/v2 v2.30.0/go.mod h1:i9ZQAojcayW3RsdCb3YR+n+wC2h65eJsZCscZ1Z1wyo= +github.com/aiven/aiven-go-client/v2 v2.30.0 h1:dj1nRuO1XglnwH2IwKmqEl3SGaqKebDoxnd+SRjxQRg= +github.com/aiven/aiven-go-client/v2 v2.30.0/go.mod h1:Eyxa+fNgayObmUBW94uJuEkyOe1646cEpjFzhm/NETY= +github.com/aiven/go-api-schemas v1.94.0 h1:kbszL56VLORPZ2jXmQBP6FJpihcmiLGdH051G8zBRd0= +github.com/aiven/go-api-schemas v1.94.0/go.mod h1:qS3E/3R+aKQbHsqXzNHqlXATY1kbVNzhiJvk2IDmADI= +github.com/aiven/go-client-codegen v0.45.0 h1:5+5eCN42Qb0QegJSYDw7WCi3z1IHemFyRxzJBN2TnaQ= +github.com/aiven/go-client-codegen v0.45.0/go.mod h1:FfbH32Xb+Hx5zeKTIug1Y8SfMeB+AKNRzxgrzkts2oA= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= -github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= +github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= +github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0= github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -279,8 +279,8 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= +github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= @@ -365,6 +365,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= +github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=