From 6581bbb1fd56258e1336d157b2223080b036f330 Mon Sep 17 00:00:00 2001 From: Murad Biashimov Date: Thu, 21 Nov 2024 10:32:56 +0100 Subject: [PATCH] chore(release): v0.26.0 --- CHANGELOG.md | 5 +- .../autoscaler/autoscaler.go | 2 +- .../userconfig/service/kafka/kafka.go | 10 +- .../service/kafka_connect/kafka_connect.go | 10 +- .../service/opensearch/opensearch.go | 56 +++++++- .../opensearch/zz_generated.deepcopy.go | 125 ++++++++++++++++++ charts/aiven-operator-crds/Chart.yaml | 4 +- .../templates/aiven.io_kafkaconnects.yaml | 9 +- .../templates/aiven.io_kafkas.yaml | 9 +- .../templates/aiven.io_opensearches.yaml | 68 +++++++++- .../aiven.io_serviceintegrationendpoints.yaml | 2 +- charts/aiven-operator/Chart.yaml | 4 +- config/crd/bases/aiven.io_kafkaconnects.yaml | 9 +- config/crd/bases/aiven.io_kafkas.yaml | 9 +- config/crd/bases/aiven.io_opensearches.yaml | 68 +++++++++- .../aiven.io_serviceintegrationendpoints.yaml | 2 +- docs/docs/api-reference/flink.md | 3 +- docs/docs/api-reference/kafka.md | 10 +- docs/docs/api-reference/kafkaconnect.md | 10 +- docs/docs/api-reference/opensearch.md | 49 ++++++- .../serviceintegrationendpoint.md | 2 +- docs/docs/changelog.md | 54 ++++++++ go.mod | 4 +- go.sum | 8 +- 24 files changed, 479 insertions(+), 53 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4e48d77..771ff58d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [MAJOR.MINOR.PATCH] - YYYY-MM-DD +## v0.26.0 - 2024-11-21 + +- Add kind: `Flink` - Add `Clickhouse` field `userConfig.recovery_basebackup_name`, type `string`: Name of the basebackup to restore in forked service - Add `Grafana` field `userConfig.auth_generic_oauth.use_refresh_token`, type `boolean`: Set to true @@ -51,7 +54,7 @@ minimum ~~`1`~~ → `0` - Change `Cassandra` field `userConfig.cassandra_version`: enum remove `4` - Change `PostgreSQL` field `userConfig.pg_version`: enum remove `12` -- Add kind: `Flink` +- Add `OpenSearch` field `userConfig.opensearch.search.insights.top_queries`, type `object` ## v0.25.0 - 2024-09-19 diff --git a/api/v1alpha1/userconfig/integrationendpoints/autoscaler/autoscaler.go b/api/v1alpha1/userconfig/integrationendpoints/autoscaler/autoscaler.go index 46507204..f7059088 100644 --- a/api/v1alpha1/userconfig/integrationendpoints/autoscaler/autoscaler.go +++ b/api/v1alpha1/userconfig/integrationendpoints/autoscaler/autoscaler.go @@ -3,7 +3,7 @@ package autoscaleruserconfig -// AutoscalingProperties +// Autoscaling properties for a service type Autoscaling struct { // +kubebuilder:validation:Minimum=50 // +kubebuilder:validation:Maximum=10000 diff --git a/api/v1alpha1/userconfig/service/kafka/kafka.go b/api/v1alpha1/userconfig/service/kafka/kafka.go index ecc79660..9e693224 100644 --- a/api/v1alpha1/userconfig/service/kafka/kafka.go +++ b/api/v1alpha1/userconfig/service/kafka/kafka.go @@ -318,7 +318,7 @@ type KafkaConnectConfig struct { SessionTimeoutMs *int `groups:"create,update" json:"session_timeout_ms,omitempty"` } -// AWS config for Secret Provider +// AWS secret provider configuration type Aws struct { // +kubebuilder:validation:MaxLength=128 // Access key used to authenticate with aws @@ -337,7 +337,7 @@ type Aws struct { SecretKey *string `groups:"create,update" json:"secret_key,omitempty"` } -// Vault Config for Secret Provider +// Vault secret provider configuration type Vault struct { // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=65536 @@ -360,15 +360,15 @@ type Vault struct { Token *string `groups:"create,update" json:"token,omitempty"` } -// SecretProvider +// Configure external secret providers in order to reference external secrets in connector configuration. Currently Hashicorp Vault and AWS Secrets Manager are supported. type KafkaConnectSecretProviders struct { - // AWS config for Secret Provider + // AWS secret provider configuration Aws *Aws `groups:"create,update" json:"aws,omitempty"` // Name of the secret provider. Used to reference secrets in connector config. Name string `groups:"create,update" json:"name"` - // Vault Config for Secret Provider + // Vault secret provider configuration Vault *Vault `groups:"create,update" json:"vault,omitempty"` } diff --git a/api/v1alpha1/userconfig/service/kafka_connect/kafka_connect.go b/api/v1alpha1/userconfig/service/kafka_connect/kafka_connect.go index 4d9411b3..2fa7871c 100644 --- a/api/v1alpha1/userconfig/service/kafka_connect/kafka_connect.go +++ b/api/v1alpha1/userconfig/service/kafka_connect/kafka_connect.go @@ -123,7 +123,7 @@ type PublicAccess struct { Prometheus *bool `groups:"create,update" json:"prometheus,omitempty"` } -// AWS config for Secret Provider +// AWS secret provider configuration type Aws struct { // +kubebuilder:validation:MaxLength=128 // Access key used to authenticate with aws @@ -142,7 +142,7 @@ type Aws struct { SecretKey *string `groups:"create,update" json:"secret_key,omitempty"` } -// Vault Config for Secret Provider +// Vault secret provider configuration type Vault struct { // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=65536 @@ -165,15 +165,15 @@ type Vault struct { Token *string `groups:"create,update" json:"token,omitempty"` } -// SecretProvider +// Configure external secret providers in order to reference external secrets in connector configuration. Currently Hashicorp Vault and AWS Secrets Manager are supported. type SecretProviders struct { - // AWS config for Secret Provider + // AWS secret provider configuration Aws *Aws `groups:"create,update" json:"aws,omitempty"` // Name of the secret provider. Used to reference secrets in connector config. Name string `groups:"create,update" json:"name"` - // Vault Config for Secret Provider + // Vault secret provider configuration Vault *Vault `groups:"create,update" json:"vault,omitempty"` } type KafkaConnectUserConfig struct { diff --git a/api/v1alpha1/userconfig/service/opensearch/opensearch.go b/api/v1alpha1/userconfig/service/opensearch/opensearch.go index 9b2d575d..3512c73e 100644 --- a/api/v1alpha1/userconfig/service/opensearch/opensearch.go +++ b/api/v1alpha1/userconfig/service/opensearch/opensearch.go @@ -6,7 +6,7 @@ package opensearchuserconfig // Azure migration settings type AzureMigration struct { // +kubebuilder:validation:Pattern=`^[^\r\n]*$` - // Azure account name + // Account name Account string `groups:"create,update" json:"account"` // +kubebuilder:validation:Pattern=`^[^\r\n]*$` @@ -296,6 +296,58 @@ type AuthFailureListeners struct { IpRateLimiting *IpRateLimiting `groups:"create,update" json:"ip_rate_limiting,omitempty"` } +// Top N queries monitoring by CPU +type Cpu struct { + // Enable or disable top N query monitoring by the metric + Enabled *bool `groups:"create,update" json:"enabled,omitempty"` + + // +kubebuilder:validation:Minimum=1 + // Specify the value of N for the top N queries by the metric + TopNSize *int `groups:"create,update" json:"top_n_size,omitempty"` + + // +kubebuilder:validation:Pattern=`^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$` + // The window size of the top N queries by the metric + WindowSize *string `groups:"create,update" json:"window_size,omitempty"` +} + +// Top N queries monitoring by latency +type Latency struct { + // Enable or disable top N query monitoring by the metric + Enabled *bool `groups:"create,update" json:"enabled,omitempty"` + + // +kubebuilder:validation:Minimum=1 + // Specify the value of N for the top N queries by the metric + TopNSize *int `groups:"create,update" json:"top_n_size,omitempty"` + + // +kubebuilder:validation:Pattern=`^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$` + // The window size of the top N queries by the metric + WindowSize *string `groups:"create,update" json:"window_size,omitempty"` +} + +// Top N queries monitoring by memory +type Memory struct { + // Enable or disable top N query monitoring by the metric + Enabled *bool `groups:"create,update" json:"enabled,omitempty"` + + // +kubebuilder:validation:Minimum=1 + // Specify the value of N for the top N queries by the metric + TopNSize *int `groups:"create,update" json:"top_n_size,omitempty"` + + // +kubebuilder:validation:Pattern=`^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$` + // The window size of the top N queries by the metric + WindowSize *string `groups:"create,update" json:"window_size,omitempty"` +} +type SearchInsightsTopQueries struct { + // Top N queries monitoring by CPU + Cpu *Cpu `groups:"create,update" json:"cpu,omitempty"` + + // Top N queries monitoring by latency + Latency *Latency `groups:"create,update" json:"latency,omitempty"` + + // Top N queries monitoring by memory + Memory *Memory `groups:"create,update" json:"memory,omitempty"` +} + // Node duress settings type NodeDuress struct { // +kubebuilder:validation:Minimum=0 @@ -602,6 +654,8 @@ 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"` + SearchInsightsTopQueries *SearchInsightsTopQueries `groups:"create,update" json:"search.insights.top_queries,omitempty"` + // Search Backpressure Settings SearchBackpressure *SearchBackpressure `groups:"create,update" json:"search_backpressure,omitempty"` diff --git a/api/v1alpha1/userconfig/service/opensearch/zz_generated.deepcopy.go b/api/v1alpha1/userconfig/service/opensearch/zz_generated.deepcopy.go index 1842c486..1c93426d 100644 --- a/api/v1alpha1/userconfig/service/opensearch/zz_generated.deepcopy.go +++ b/api/v1alpha1/userconfig/service/opensearch/zz_generated.deepcopy.go @@ -81,6 +81,36 @@ func (in *AzureMigration) DeepCopy() *AzureMigration { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Cpu) DeepCopyInto(out *Cpu) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.TopNSize != nil { + in, out := &in.TopNSize, &out.TopNSize + *out = new(int) + **out = **in + } + if in.WindowSize != nil { + in, out := &in.WindowSize, &out.WindowSize + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cpu. +func (in *Cpu) DeepCopy() *Cpu { + if in == nil { + return nil + } + out := new(Cpu) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *GcsMigration) DeepCopyInto(out *GcsMigration) { *out = *in @@ -321,6 +351,66 @@ 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 *Latency) DeepCopyInto(out *Latency) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.TopNSize != nil { + in, out := &in.TopNSize, &out.TopNSize + *out = new(int) + **out = **in + } + if in.WindowSize != nil { + in, out := &in.WindowSize, &out.WindowSize + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Latency. +func (in *Latency) DeepCopy() *Latency { + if in == nil { + return nil + } + out := new(Latency) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Memory) DeepCopyInto(out *Memory) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.TopNSize != nil { + in, out := &in.TopNSize, &out.TopNSize + *out = new(int) + **out = **in + } + if in.WindowSize != nil { + in, out := &in.WindowSize, &out.WindowSize + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Memory. +func (in *Memory) DeepCopy() *Memory { + if in == nil { + return nil + } + out := new(Memory) + in.DeepCopyInto(out) + 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 @@ -589,6 +679,11 @@ func (in *Opensearch) DeepCopyInto(out *Opensearch) { *out = new(string) **out = **in } + if in.SearchInsightsTopQueries != nil { + in, out := &in.SearchInsightsTopQueries, &out.SearchInsightsTopQueries + *out = new(SearchInsightsTopQueries) + (*in).DeepCopyInto(*out) + } if in.SearchBackpressure != nil { in, out := &in.SearchBackpressure, &out.SearchBackpressure *out = new(SearchBackpressure) @@ -1108,6 +1203,36 @@ func (in *SearchBackpressure) DeepCopy() *SearchBackpressure { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SearchInsightsTopQueries) DeepCopyInto(out *SearchInsightsTopQueries) { + *out = *in + if in.Cpu != nil { + in, out := &in.Cpu, &out.Cpu + *out = new(Cpu) + (*in).DeepCopyInto(*out) + } + if in.Latency != nil { + in, out := &in.Latency, &out.Latency + *out = new(Latency) + (*in).DeepCopyInto(*out) + } + if in.Memory != nil { + in, out := &in.Memory, &out.Memory + *out = new(Memory) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchInsightsTopQueries. +func (in *SearchInsightsTopQueries) DeepCopy() *SearchInsightsTopQueries { + if in == nil { + return nil + } + out := new(SearchInsightsTopQueries) + 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 diff --git a/charts/aiven-operator-crds/Chart.yaml b/charts/aiven-operator-crds/Chart.yaml index c3a26838..325ac5db 100644 --- a/charts/aiven-operator-crds/Chart.yaml +++ b/charts/aiven-operator-crds/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: aiven-operator-crds description: A Helm chart to deploy the aiven operator custom resource definitions type: application -version: v0.25.0 -appVersion: v0.25.0 +version: v0.26.0 +appVersion: v0.26.0 maintainers: - name: byashimov url: https://www.aiven.io diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml index b784c756..dfbfe1b2 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml @@ -413,10 +413,13 @@ spec: supported. Secrets can be referenced in connector config with ${::}" items: - description: SecretProvider + description: + Configure external secret providers in order to + reference external secrets in connector configuration. Currently + Hashicorp Vault and AWS Secrets Manager are supported. properties: aws: - description: AWS config for Secret Provider + description: AWS secret provider configuration properties: access_key: description: Access key used to authenticate with aws @@ -447,7 +450,7 @@ spec: secrets in connector config. type: string vault: - description: Vault Config for Secret Provider + description: Vault secret provider configuration properties: address: description: Address of the Vault server diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml index b3085ba5..ee2e9e37 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml @@ -813,10 +813,13 @@ spec: supported. Secrets can be referenced in connector config with ${::}" items: - description: SecretProvider + description: + Configure external secret providers in order to + reference external secrets in connector configuration. Currently + Hashicorp Vault and AWS Secrets Manager are supported. properties: aws: - description: AWS config for Secret Provider + description: AWS secret provider configuration properties: access_key: description: Access key used to authenticate with aws @@ -847,7 +850,7 @@ spec: secrets in connector config. type: string vault: - description: Vault Config for Secret Provider + description: Vault secret provider configuration properties: address: description: Address of the Vault server diff --git a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml index 916e5ce5..31eace58 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml @@ -234,7 +234,7 @@ spec: description: Azure migration settings properties: account: - description: Azure account name + description: Account name pattern: ^[^\r\n]*$ type: string base_path: @@ -910,6 +910,72 @@ spec: maxLength: 1024 pattern: ^[^\r\n]*$ type: string + search.insights.top_queries: + properties: + cpu: + description: Top N queries monitoring by CPU + properties: + enabled: + description: + Enable or disable top N query monitoring + by the metric + type: boolean + top_n_size: + description: + Specify the value of N for the top N + queries by the metric + minimum: 1 + type: integer + window_size: + description: + The window size of the top N queries + by the metric + pattern: ^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$ + type: string + type: object + latency: + description: Top N queries monitoring by latency + properties: + enabled: + description: + Enable or disable top N query monitoring + by the metric + type: boolean + top_n_size: + description: + Specify the value of N for the top N + queries by the metric + minimum: 1 + type: integer + window_size: + description: + The window size of the top N queries + by the metric + pattern: ^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$ + type: string + type: object + memory: + description: Top N queries monitoring by memory + properties: + enabled: + description: + Enable or disable top N query monitoring + by the metric + type: boolean + top_n_size: + description: + Specify the value of N for the top N + queries by the metric + minimum: 1 + type: integer + window_size: + description: + The window size of the top N queries + by the metric + pattern: ^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$ + type: string + type: object + type: object search_backpressure: description: Search Backpressure Settings properties: diff --git a/charts/aiven-operator-crds/templates/aiven.io_serviceintegrationendpoints.yaml b/charts/aiven-operator-crds/templates/aiven.io_serviceintegrationendpoints.yaml index a768740f..5e0b9698 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_serviceintegrationendpoints.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_serviceintegrationendpoints.yaml @@ -75,7 +75,7 @@ spec: autoscaling: description: Configure autoscaling thresholds for a service items: - description: AutoscalingProperties + description: Autoscaling properties for a service properties: cap_gb: description: diff --git a/charts/aiven-operator/Chart.yaml b/charts/aiven-operator/Chart.yaml index f8dc920d..d7c6ffd2 100644 --- a/charts/aiven-operator/Chart.yaml +++ b/charts/aiven-operator/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: aiven-operator description: A Helm chart to deploy the aiven operator type: application -version: v0.25.0 -appVersion: v0.25.0 +version: v0.26.0 +appVersion: v0.26.0 maintainers: - name: byashimov url: https://www.aiven.io diff --git a/config/crd/bases/aiven.io_kafkaconnects.yaml b/config/crd/bases/aiven.io_kafkaconnects.yaml index b784c756..dfbfe1b2 100644 --- a/config/crd/bases/aiven.io_kafkaconnects.yaml +++ b/config/crd/bases/aiven.io_kafkaconnects.yaml @@ -413,10 +413,13 @@ spec: supported. Secrets can be referenced in connector config with ${::}" items: - description: SecretProvider + description: + Configure external secret providers in order to + reference external secrets in connector configuration. Currently + Hashicorp Vault and AWS Secrets Manager are supported. properties: aws: - description: AWS config for Secret Provider + description: AWS secret provider configuration properties: access_key: description: Access key used to authenticate with aws @@ -447,7 +450,7 @@ spec: secrets in connector config. type: string vault: - description: Vault Config for Secret Provider + description: Vault secret provider configuration properties: address: description: Address of the Vault server diff --git a/config/crd/bases/aiven.io_kafkas.yaml b/config/crd/bases/aiven.io_kafkas.yaml index b3085ba5..ee2e9e37 100644 --- a/config/crd/bases/aiven.io_kafkas.yaml +++ b/config/crd/bases/aiven.io_kafkas.yaml @@ -813,10 +813,13 @@ spec: supported. Secrets can be referenced in connector config with ${::}" items: - description: SecretProvider + description: + Configure external secret providers in order to + reference external secrets in connector configuration. Currently + Hashicorp Vault and AWS Secrets Manager are supported. properties: aws: - description: AWS config for Secret Provider + description: AWS secret provider configuration properties: access_key: description: Access key used to authenticate with aws @@ -847,7 +850,7 @@ spec: secrets in connector config. type: string vault: - description: Vault Config for Secret Provider + description: Vault secret provider configuration properties: address: description: Address of the Vault server diff --git a/config/crd/bases/aiven.io_opensearches.yaml b/config/crd/bases/aiven.io_opensearches.yaml index 916e5ce5..31eace58 100644 --- a/config/crd/bases/aiven.io_opensearches.yaml +++ b/config/crd/bases/aiven.io_opensearches.yaml @@ -234,7 +234,7 @@ spec: description: Azure migration settings properties: account: - description: Azure account name + description: Account name pattern: ^[^\r\n]*$ type: string base_path: @@ -910,6 +910,72 @@ spec: maxLength: 1024 pattern: ^[^\r\n]*$ type: string + search.insights.top_queries: + properties: + cpu: + description: Top N queries monitoring by CPU + properties: + enabled: + description: + Enable or disable top N query monitoring + by the metric + type: boolean + top_n_size: + description: + Specify the value of N for the top N + queries by the metric + minimum: 1 + type: integer + window_size: + description: + The window size of the top N queries + by the metric + pattern: ^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$ + type: string + type: object + latency: + description: Top N queries monitoring by latency + properties: + enabled: + description: + Enable or disable top N query monitoring + by the metric + type: boolean + top_n_size: + description: + Specify the value of N for the top N + queries by the metric + minimum: 1 + type: integer + window_size: + description: + The window size of the top N queries + by the metric + pattern: ^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$ + type: string + type: object + memory: + description: Top N queries monitoring by memory + properties: + enabled: + description: + Enable or disable top N query monitoring + by the metric + type: boolean + top_n_size: + description: + Specify the value of N for the top N + queries by the metric + minimum: 1 + type: integer + window_size: + description: + The window size of the top N queries + by the metric + pattern: ^(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?)(,(\*?[a-z0-9._-]*\*?|-\*?[a-z0-9._-]*\*?))*[,]?$ + type: string + type: object + type: object search_backpressure: description: Search Backpressure Settings properties: diff --git a/config/crd/bases/aiven.io_serviceintegrationendpoints.yaml b/config/crd/bases/aiven.io_serviceintegrationendpoints.yaml index a768740f..5e0b9698 100644 --- a/config/crd/bases/aiven.io_serviceintegrationendpoints.yaml +++ b/config/crd/bases/aiven.io_serviceintegrationendpoints.yaml @@ -75,7 +75,7 @@ spec: autoscaling: description: Configure autoscaling thresholds for a service items: - description: AutoscalingProperties + description: Autoscaling properties for a service properties: cap_gb: description: diff --git a/docs/docs/api-reference/flink.md b/docs/docs/api-reference/flink.md index 6629ed4f..85508e3a 100644 --- a/docs/docs/api-reference/flink.md +++ b/docs/docs/api-reference/flink.md @@ -17,7 +17,6 @@ title: "Flink" connInfoSecretTarget: name: flink-secret - prefix: MY_SECRET_PREFIX_ annotations: foo: bar labels: @@ -33,7 +32,7 @@ title: "Flink" userConfig: number_of_task_slots: 10 ip_filter: - - network: 0.0.0.0 + - network: 0.0.0.0/32 description: whatever - network: 10.20.0.0/16 ``` diff --git a/docs/docs/api-reference/kafka.md b/docs/docs/api-reference/kafka.md index 9fc8b361..ff90c573 100644 --- a/docs/docs/api-reference/kafka.md +++ b/docs/docs/api-reference/kafka.md @@ -348,7 +348,7 @@ Kafka Connect configuration values. _Appears on [`spec.userConfig`](#spec.userConfig)._ -SecretProvider. +Configure external secret providers in order to reference external secrets in connector configuration. Currently Hashicorp Vault and AWS Secrets Manager are supported. **Required** @@ -356,14 +356,14 @@ SecretProvider. **Optional** -- [`aws`](#spec.userConfig.kafka_connect_secret_providers.aws-property){: name='spec.userConfig.kafka_connect_secret_providers.aws-property'} (object). AWS config for Secret Provider. See below for [nested schema](#spec.userConfig.kafka_connect_secret_providers.aws). -- [`vault`](#spec.userConfig.kafka_connect_secret_providers.vault-property){: name='spec.userConfig.kafka_connect_secret_providers.vault-property'} (object). Vault Config for Secret Provider. See below for [nested schema](#spec.userConfig.kafka_connect_secret_providers.vault). +- [`aws`](#spec.userConfig.kafka_connect_secret_providers.aws-property){: name='spec.userConfig.kafka_connect_secret_providers.aws-property'} (object). AWS secret provider configuration. See below for [nested schema](#spec.userConfig.kafka_connect_secret_providers.aws). +- [`vault`](#spec.userConfig.kafka_connect_secret_providers.vault-property){: name='spec.userConfig.kafka_connect_secret_providers.vault-property'} (object). Vault secret provider configuration. See below for [nested schema](#spec.userConfig.kafka_connect_secret_providers.vault). #### aws {: #spec.userConfig.kafka_connect_secret_providers.aws } _Appears on [`spec.userConfig.kafka_connect_secret_providers`](#spec.userConfig.kafka_connect_secret_providers)._ -AWS config for Secret Provider. +AWS secret provider configuration. **Required** @@ -379,7 +379,7 @@ AWS config for Secret Provider. _Appears on [`spec.userConfig.kafka_connect_secret_providers`](#spec.userConfig.kafka_connect_secret_providers)._ -Vault Config for Secret Provider. +Vault secret provider configuration. **Required** diff --git a/docs/docs/api-reference/kafkaconnect.md b/docs/docs/api-reference/kafkaconnect.md index d0d501cc..e1e8cc6a 100644 --- a/docs/docs/api-reference/kafkaconnect.md +++ b/docs/docs/api-reference/kafkaconnect.md @@ -224,7 +224,7 @@ Allow access to selected service ports from the public Internet. _Appears on [`spec.userConfig`](#spec.userConfig)._ -SecretProvider. +Configure external secret providers in order to reference external secrets in connector configuration. Currently Hashicorp Vault and AWS Secrets Manager are supported. **Required** @@ -232,14 +232,14 @@ SecretProvider. **Optional** -- [`aws`](#spec.userConfig.secret_providers.aws-property){: name='spec.userConfig.secret_providers.aws-property'} (object). AWS config for Secret Provider. See below for [nested schema](#spec.userConfig.secret_providers.aws). -- [`vault`](#spec.userConfig.secret_providers.vault-property){: name='spec.userConfig.secret_providers.vault-property'} (object). Vault Config for Secret Provider. See below for [nested schema](#spec.userConfig.secret_providers.vault). +- [`aws`](#spec.userConfig.secret_providers.aws-property){: name='spec.userConfig.secret_providers.aws-property'} (object). AWS secret provider configuration. See below for [nested schema](#spec.userConfig.secret_providers.aws). +- [`vault`](#spec.userConfig.secret_providers.vault-property){: name='spec.userConfig.secret_providers.vault-property'} (object). Vault secret provider configuration. See below for [nested schema](#spec.userConfig.secret_providers.vault). #### aws {: #spec.userConfig.secret_providers.aws } _Appears on [`spec.userConfig.secret_providers`](#spec.userConfig.secret_providers)._ -AWS config for Secret Provider. +AWS secret provider configuration. **Required** @@ -255,7 +255,7 @@ AWS config for Secret Provider. _Appears on [`spec.userConfig.secret_providers`](#spec.userConfig.secret_providers)._ -Vault Config for Secret Provider. +Vault secret provider configuration. **Required** diff --git a/docs/docs/api-reference/opensearch.md b/docs/docs/api-reference/opensearch.md index 5582e213..bbe8e6b6 100644 --- a/docs/docs/api-reference/opensearch.md +++ b/docs/docs/api-reference/opensearch.md @@ -226,7 +226,7 @@ Azure migration settings. **Required** -- [`account`](#spec.userConfig.azure_migration.account-property){: name='spec.userConfig.azure_migration.account-property'} (string, Pattern: `^[^\r\n]*$`). Azure account name. +- [`account`](#spec.userConfig.azure_migration.account-property){: name='spec.userConfig.azure_migration.account-property'} (string, Pattern: `^[^\r\n]*$`). Account name. - [`base_path`](#spec.userConfig.azure_migration.base_path-property){: name='spec.userConfig.azure_migration.base_path-property'} (string, Pattern: `^[^\r\n]*$`). The path to the repository data within its container. The value of this setting should not start or end with a /. - [`container`](#spec.userConfig.azure_migration.container-property){: name='spec.userConfig.azure_migration.container-property'} (string, Pattern: `^[^\r\n]*$`). Azure container name. - [`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. @@ -382,6 +382,7 @@ 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.insights.top_queries`](#spec.userConfig.opensearch.search.insights.top_queries-property){: name='spec.userConfig.opensearch.search.insights.top_queries-property'} (object). See below for [nested schema](#spec.userConfig.opensearch.search.insights.top_queries). - [`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). @@ -437,6 +438,52 @@ 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: 0, 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.insights.top_queries {: #spec.userConfig.opensearch.search.insights.top_queries } + +_Appears on [`spec.userConfig.opensearch`](#spec.userConfig.opensearch)._ + +**Optional** + +- [`cpu`](#spec.userConfig.opensearch.search.insights.top_queries.cpu-property){: name='spec.userConfig.opensearch.search.insights.top_queries.cpu-property'} (object). Top N queries monitoring by CPU. See below for [nested schema](#spec.userConfig.opensearch.search.insights.top_queries.cpu). +- [`latency`](#spec.userConfig.opensearch.search.insights.top_queries.latency-property){: name='spec.userConfig.opensearch.search.insights.top_queries.latency-property'} (object). Top N queries monitoring by latency. See below for [nested schema](#spec.userConfig.opensearch.search.insights.top_queries.latency). +- [`memory`](#spec.userConfig.opensearch.search.insights.top_queries.memory-property){: name='spec.userConfig.opensearch.search.insights.top_queries.memory-property'} (object). Top N queries monitoring by memory. See below for [nested schema](#spec.userConfig.opensearch.search.insights.top_queries.memory). + +##### cpu {: #spec.userConfig.opensearch.search.insights.top_queries.cpu } + +_Appears on [`spec.userConfig.opensearch.search.insights.top_queries`](#spec.userConfig.opensearch.search.insights.top_queries)._ + +Top N queries monitoring by CPU. + +**Optional** + +- [`enabled`](#spec.userConfig.opensearch.search.insights.top_queries.cpu.enabled-property){: name='spec.userConfig.opensearch.search.insights.top_queries.cpu.enabled-property'} (boolean). Enable or disable top N query monitoring by the metric. +- [`top_n_size`](#spec.userConfig.opensearch.search.insights.top_queries.cpu.top_n_size-property){: name='spec.userConfig.opensearch.search.insights.top_queries.cpu.top_n_size-property'} (integer, Minimum: 1). Specify the value of N for the top N queries by the metric. +- [`window_size`](#spec.userConfig.opensearch.search.insights.top_queries.cpu.window_size-property){: name='spec.userConfig.opensearch.search.insights.top_queries.cpu.window_size-property'} (string). The window size of the top N queries by the metric. + +##### latency {: #spec.userConfig.opensearch.search.insights.top_queries.latency } + +_Appears on [`spec.userConfig.opensearch.search.insights.top_queries`](#spec.userConfig.opensearch.search.insights.top_queries)._ + +Top N queries monitoring by latency. + +**Optional** + +- [`enabled`](#spec.userConfig.opensearch.search.insights.top_queries.latency.enabled-property){: name='spec.userConfig.opensearch.search.insights.top_queries.latency.enabled-property'} (boolean). Enable or disable top N query monitoring by the metric. +- [`top_n_size`](#spec.userConfig.opensearch.search.insights.top_queries.latency.top_n_size-property){: name='spec.userConfig.opensearch.search.insights.top_queries.latency.top_n_size-property'} (integer, Minimum: 1). Specify the value of N for the top N queries by the metric. +- [`window_size`](#spec.userConfig.opensearch.search.insights.top_queries.latency.window_size-property){: name='spec.userConfig.opensearch.search.insights.top_queries.latency.window_size-property'} (string). The window size of the top N queries by the metric. + +##### memory {: #spec.userConfig.opensearch.search.insights.top_queries.memory } + +_Appears on [`spec.userConfig.opensearch.search.insights.top_queries`](#spec.userConfig.opensearch.search.insights.top_queries)._ + +Top N queries monitoring by memory. + +**Optional** + +- [`enabled`](#spec.userConfig.opensearch.search.insights.top_queries.memory.enabled-property){: name='spec.userConfig.opensearch.search.insights.top_queries.memory.enabled-property'} (boolean). Enable or disable top N query monitoring by the metric. +- [`top_n_size`](#spec.userConfig.opensearch.search.insights.top_queries.memory.top_n_size-property){: name='spec.userConfig.opensearch.search.insights.top_queries.memory.top_n_size-property'} (integer, Minimum: 1). Specify the value of N for the top N queries by the metric. +- [`window_size`](#spec.userConfig.opensearch.search.insights.top_queries.memory.window_size-property){: name='spec.userConfig.opensearch.search.insights.top_queries.memory.window_size-property'} (string). The window size of the top N queries by the metric. + #### search_backpressure {: #spec.userConfig.opensearch.search_backpressure } _Appears on [`spec.userConfig.opensearch`](#spec.userConfig.opensearch)._ diff --git a/docs/docs/api-reference/serviceintegrationendpoint.md b/docs/docs/api-reference/serviceintegrationendpoint.md index ff2996e0..64b7bcea 100644 --- a/docs/docs/api-reference/serviceintegrationendpoint.md +++ b/docs/docs/api-reference/serviceintegrationendpoint.md @@ -157,7 +157,7 @@ Autoscaler configuration values. _Appears on [`spec.autoscaler`](#spec.autoscaler)._ -AutoscalingProperties. +Autoscaling properties for a service. **Required** diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md index afbbaf30..113a8b6d 100644 --- a/docs/docs/changelog.md +++ b/docs/docs/changelog.md @@ -1,6 +1,60 @@ # Changelog +## v0.26.0 - 2024-11-21 + +- Add kind: `Flink` +- Add `Clickhouse` field `userConfig.recovery_basebackup_name`, type `string`: Name of the basebackup + to restore in forked service +- Add `Grafana` field `userConfig.auth_generic_oauth.use_refresh_token`, type `boolean`: Set to true + to use refresh token and check access token expiration +- Add `Kafka` field `userConfig.schema_registry_config.retriable_errors_silenced`, type `boolean`: If + enabled, kafka errors which can be retried or custom errors specified for the service will not be + raised, instead, a warning log is emitted +- Add `Kafka` field `userConfig.schema_registry_config.schema_reader_strict_mode`, type `boolean`: If + enabled, causes the Karapace schema-registry service to shutdown when there are invalid schema records + in the `_schemas` topic +- Add `Kafka` field `userConfig.single_zone`, type `object`: Single-zone configuration +- Change `Kafka` field `userConfig.kafka_version`: enum remove `3.5`, `3.6` +- Add `MySQL` field `userConfig.mysql.log_output`, type `string`: The slow log output destination when + slow_query_log is ON +- Add `OpenSearch` field `userConfig.azure_migration.indices`, type `string`: A comma-delimited list + of indices to restore from the snapshot. Multi-index syntax is supported +- Add `OpenSearch` field `userConfig.gcs_migration.indices`, type `string`: A comma-delimited list of + indices to restore from the snapshot. Multi-index syntax is supported +- 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` +- Add `OpenSearch` field `userConfig.azure_migration.include_aliases`, type `boolean`: Whether to restore + aliases alongside their associated indexes. Default is true +- Add `OpenSearch` field `userConfig.gcs_migration.include_aliases`, type `boolean`: Whether to restore + aliases alongside their associated indexes. Default is true +- Add `OpenSearch` field `userConfig.s3_migration.include_aliases`, type `boolean`: Whether to restore + aliases alongside their associated indexes. Default is true +- Add `ServiceIntegration` field `autoscaler`, type `object`: Autoscaler specific user configuration options +- Add `ServiceIntegrationEndpoint` field `autoscaler`, type `object`: Autoscaler configuration values +- Change `Grafana` field `userConfig.alerting_enabled`: deprecated +- Change `OpenSearch` field `userConfig.opensearch.auth_failure_listeners.internal_authentication_backend_limiting.allowed_tries`: + minimum ~~`0`~~ → `1` +- Change `OpenSearch` field `userConfig.opensearch.auth_failure_listeners.ip_rate_limiting.block_expiry_seconds`: + minimum ~~`1`~~ → `0` +- Change `OpenSearch` field `userConfig.opensearch.auth_failure_listeners.ip_rate_limiting.time_window_seconds`: + minimum ~~`1`~~ → `0` +- Change `Cassandra` field `userConfig.cassandra_version`: enum remove `4` +- Change `PostgreSQL` field `userConfig.pg_version`: enum remove `12` +- Add `OpenSearch` field `userConfig.opensearch.search.insights.top_queries`, type `object` + ## v0.25.0 - 2024-09-19 - Fix `KafkaTopic`: fails to create a topic with the replication factor set more than running Kafka nodes diff --git a/go.mod b/go.mod index 8450808b..b276f3d7 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ toolchain go1.23.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 github.com/aiven/aiven-go-client/v2 v2.31.0 - github.com/aiven/go-api-schemas v1.100.0 - github.com/aiven/go-client-codegen v0.52.0 + github.com/aiven/go-api-schemas v1.103.0 + github.com/aiven/go-client-codegen v0.56.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 diff --git a/go.sum b/go.sum index 1cc80abf..627352bf 100644 --- a/go.sum +++ b/go.sum @@ -39,10 +39,10 @@ github.com/ClickHouse/clickhouse-go/v2 v2.30.0 h1:AG4D/hW39qa58+JHQIFOSnxyL46H6h github.com/ClickHouse/clickhouse-go/v2 v2.30.0/go.mod h1:i9ZQAojcayW3RsdCb3YR+n+wC2h65eJsZCscZ1Z1wyo= github.com/aiven/aiven-go-client/v2 v2.31.0 h1:ThPtEQiKDxtq5GDfPW8bAmrT2d6oHRP492CQ7gXwuTI= github.com/aiven/aiven-go-client/v2 v2.31.0/go.mod h1:AXfB5OeioOln+hYh1XAJaYyi+f+TV6xInc7VZ9DwnY4= -github.com/aiven/go-api-schemas v1.100.0 h1:jDkhyM17CG5WA0tVnGUwy3Ux6BzS4QV2ntrPOXKtCz8= -github.com/aiven/go-api-schemas v1.100.0/go.mod h1:gtyL4LloZ2lRqcyEZTCSizi1eKm6tdzQdUdlIHlvdlY= -github.com/aiven/go-client-codegen v0.52.0 h1:43fryFs7Komt6qgo+iiDttS+yIdEUh1O69gfZoNUzMc= -github.com/aiven/go-client-codegen v0.52.0/go.mod h1:FfbH32Xb+Hx5zeKTIug1Y8SfMeB+AKNRzxgrzkts2oA= +github.com/aiven/go-api-schemas v1.103.0 h1:jz1/Nu/l26gQF46PhL12tNAQLd79wrpagSrbqVJgVZU= +github.com/aiven/go-api-schemas v1.103.0/go.mod h1:gtyL4LloZ2lRqcyEZTCSizi1eKm6tdzQdUdlIHlvdlY= +github.com/aiven/go-client-codegen v0.56.0 h1:LSaVaZV+Uw7jWJXfQui4NTzrhKWHRJUNtd4aCQforeY= +github.com/aiven/go-client-codegen v0.56.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=