diff --git a/charts/kubedb-webhook-server/templates/autoscaler/mutating-webhook.yaml b/charts/kubedb-webhook-server/templates/autoscaler/mutating-webhook.yaml index f42e8ff225..1577d432ca 100644 --- a/charts/kubedb-webhook-server/templates/autoscaler/mutating-webhook.yaml +++ b/charts/kubedb-webhook-server/templates/autoscaler/mutating-webhook.yaml @@ -129,6 +129,24 @@ webhooks: failurePolicy: {{ .Values.apiserver.webhook.failurePolicy }} sideEffects: None {{- end }} +{{- if $featureGates.Ignite }} +- name: igniteautoscalerwebhook.mutators.autoscaling.kubedb.com + clientConfig: + service: + namespace: {{ .Release.Namespace }} + name: {{ include "kubedb-webhook-server.fullname" . }} + path: /mutate-autoscaling-kubedb-com-v1alpha1-igniteautoscaler + port: 443 +{{- include "kubedb-webhook-server.webhook-ca-bundle" $ | nindent 4 }} + rules: + - apiGroups: ["autoscaling.kubedb.com"] + apiVersions: ["*"] + resources: ["igniteautoscalers"] + operations: ["CREATE", "UPDATE"] + admissionReviewVersions: ["v1beta1"] + failurePolicy: {{ .Values.apiserver.webhook.failurePolicy }} + sideEffects: None +{{- end }} {{- if $featureGates.Kafka }} - name: kafkaautoscalerwebhook.mutators.autoscaling.kubedb.com clientConfig: @@ -327,6 +345,24 @@ webhooks: failurePolicy: {{ .Values.apiserver.webhook.failurePolicy }} sideEffects: None {{- end }} +{{- if $featureGates.Qdrant }} +- name: qdrantautoscalerwebhook.mutators.autoscaling.kubedb.com + clientConfig: + service: + namespace: {{ .Release.Namespace }} + name: {{ include "kubedb-webhook-server.fullname" . }} + path: /mutate-autoscaling-kubedb-com-v1alpha1-qdrantautoscaler + port: 443 +{{- include "kubedb-webhook-server.webhook-ca-bundle" $ | nindent 4 }} + rules: + - apiGroups: ["autoscaling.kubedb.com"] + apiVersions: ["*"] + resources: ["qdrantautoscalers"] + operations: ["CREATE", "UPDATE"] + admissionReviewVersions: ["v1beta1"] + failurePolicy: {{ .Values.apiserver.webhook.failurePolicy }} + sideEffects: None +{{- end }} {{- if $featureGates.RabbitMQ }} - name: rabbitmqautoscalerwebhook.mutators.autoscaling.kubedb.com clientConfig: diff --git a/charts/kubedb-webhook-server/templates/autoscaler/validating-webhook.yaml b/charts/kubedb-webhook-server/templates/autoscaler/validating-webhook.yaml index 71cc8e850c..69799e27b4 100644 --- a/charts/kubedb-webhook-server/templates/autoscaler/validating-webhook.yaml +++ b/charts/kubedb-webhook-server/templates/autoscaler/validating-webhook.yaml @@ -129,6 +129,25 @@ webhooks: failurePolicy: {{ .Values.apiserver.webhook.failurePolicy }} sideEffects: None {{- end }} + +{{- if $featureGates.Ignite }} +- name: igniteautoscalerwebhook.validators.autoscaling.kubedb.com + clientConfig: + service: + namespace: {{ .Release.Namespace }} + name: {{ include "kubedb-webhook-server.fullname" . }} + path: /validate-autoscaling-kubedb-com-v1alpha1-igniteautoscaler + port: 443 +{{- include "kubedb-webhook-server.webhook-ca-bundle" $ | nindent 4 }} + rules: + - apiGroups: ["autoscaling.kubedb.com"] + apiVersions: ["*"] + resources: ["igniteautoscalers"] + operations: ["CREATE", "UPDATE", "DELETE"] + admissionReviewVersions: ["v1beta1"] + failurePolicy: {{ .Values.apiserver.webhook.failurePolicy }} + sideEffects: None +{{- end }} {{- if $featureGates.Kafka }} - name: kafkaautoscalerwebhook.validators.autoscaling.kubedb.com clientConfig: @@ -327,6 +346,24 @@ webhooks: failurePolicy: {{ .Values.apiserver.webhook.failurePolicy }} sideEffects: None {{- end }} +{{- if $featureGates.Qdrant }} +- name: qdrantautoscalerwebhook.validators.autoscaling.kubedb.com + clientConfig: + service: + namespace: {{ .Release.Namespace }} + name: {{ include "kubedb-webhook-server.fullname" . }} + path: /validate-autoscaling-kubedb-com-v1alpha1-qdrantautoscaler + port: 443 +{{- include "kubedb-webhook-server.webhook-ca-bundle" $ | nindent 4 }} + rules: + - apiGroups: ["autoscaling.kubedb.com"] + apiVersions: ["*"] + resources: ["qdrantautoscalers"] + operations: ["CREATE", "UPDATE", "DELETE"] + admissionReviewVersions: ["v1beta1"] + failurePolicy: {{ .Values.apiserver.webhook.failurePolicy }} + sideEffects: None +{{- end }} {{- if $featureGates.RabbitMQ }} - name: rabbitmqautoscalerwebhook.validators.autoscaling.kubedb.com clientConfig: diff --git a/go.mod b/go.mod index de543d3c2c..f272c634dc 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( kmodules.xyz/image-packer v0.0.0-20260417111715-79b725e3dbf6 kmodules.xyz/resource-metadata v0.43.0 kmodules.xyz/schema-checker v0.4.2 - kubedb.dev/apimachinery v0.64.0 + kubedb.dev/apimachinery v0.64.0-rc.0.0.20260417065604-9b9f8be7911a kubeops.dev/installer v0.0.0-20260409180749-66bc29c4e4c9 sigs.k8s.io/yaml v1.6.0 stash.appscode.dev/installer v0.12.2-0.20260224175756-ac464b38bf6c diff --git a/go.sum b/go.sum index b5659bb8eb..fe4dccdbb4 100644 --- a/go.sum +++ b/go.sum @@ -345,8 +345,8 @@ kmodules.xyz/resource-metadata v0.43.0 h1:MSUeMku47f1NhpTptkbWZbyGqp1oASTh/I2sBJ kmodules.xyz/resource-metadata v0.43.0/go.mod h1:bqm4/ZqHxA04H1/Mz79YhHgrePSKJfUVL7cpG8teKsA= kmodules.xyz/schema-checker v0.4.2 h1:tAbxEtM759GxDM/3sQi/+OKKwUsEF+Ih4KReV3Eb/Xw= kmodules.xyz/schema-checker v0.4.2/go.mod h1:N7ETPwfY4LbTHbydC9jjssPmYKKgZ8DC0IuLCU55wwc= -kubedb.dev/apimachinery v0.64.0 h1:JWxE5ael0PK64QMozFTxL6qmIJDDK1CEvZcGZ0qpCyM= -kubedb.dev/apimachinery v0.64.0/go.mod h1:fUQDWDXkc9bwcHCkao//SfHBpSSFwbvM+UNQmcsxUDI= +kubedb.dev/apimachinery v0.64.0-rc.0.0.20260417065604-9b9f8be7911a h1:eiZP/o08UsrCRNUpxmztVnY4s/GYjuHs6skF2Y7pb6A= +kubedb.dev/apimachinery v0.64.0-rc.0.0.20260417065604-9b9f8be7911a/go.mod h1:6gtNaMwCx/E/N9EKwB/Zi96/+pNeGebzOadzW52zY8s= kubeops.dev/installer v0.0.0-20260409180749-66bc29c4e4c9 h1:6zligiJXlXUMGaEgm5CF/TmVMnKORRXwQa8KnNMlVLQ= kubeops.dev/installer v0.0.0-20260409180749-66bc29c4e4c9/go.mod h1:8X06Mr3+df3YsE1PMRSDBPaplOOS4js7tBBFK3Sx1Ug= kubeops.dev/operator-shard-manager v0.0.5 h1:i7VnyUfIa9u3RQhSTVWNsooXcgmrWWxJyI9gJ10onE8= diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mariadb_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mariadb_helpers.go index eb4ac1c652..289e456d23 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mariadb_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mariadb_helpers.go @@ -368,7 +368,7 @@ func (m *MariaDB) SetDefaults(mdVersion *v1alpha1.MariaDBVersion) { func (m *MariaDB) SetDefaultsMaxscale(mdVersion *v1alpha1.MariaDBVersion, maxscale *MaxScaleSpec) { if maxscale == nil { - maxscale = &MaxScaleSpec{} + return } if maxscale.StorageType == "" { maxscale.StorageType = StorageTypeDurable @@ -569,21 +569,15 @@ func (m *MariaDB) SetTLSDefaults() { m.Spec.TLS.Certificates = kmapi.SetMissingSecretNameForCertificate(m.Spec.TLS.Certificates, string(MariaDBExporterCert), m.CertificateName(MariaDBExporterCert)) } -func (m *MariaDB) GetPersistentSecrets() []string { +func (m *MariaDBSpec) GetPersistentSecrets() []string { if m == nil { return nil } var secrets []string - if m.Spec.AuthSecret != nil { - secrets = append(secrets, m.Spec.AuthSecret.Name) - } - - if m.Spec.Monitor != nil && m.Spec.TLS != nil { - name := meta_util.NameWithSuffix(m.Name, kubedb.MySQLMetricsExporterConfigSecretSuffix) - secrets = append(secrets, name) + if m.AuthSecret != nil { + secrets = append(secrets, m.AuthSecret.Name) } - return secrets } diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mysql_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mysql_helpers.go index 1608ac63bd..4290b08b05 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mysql_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mysql_helpers.go @@ -412,18 +412,14 @@ func (m *MySQL) SetHealthCheckerDefaults() { } } -func (m *MySQL) GetPersistentSecrets() []string { +func (m *MySQLSpec) GetPersistentSecrets() []string { if m == nil { return nil } var secrets []string - if m.Spec.AuthSecret != nil { - secrets = append(secrets, m.Spec.AuthSecret.Name) - } - if m.Spec.Monitor != nil && m.Spec.TLS != nil { - name := meta_util.NameWithSuffix(m.Name, kubedb.MySQLMetricsExporterConfigSecretSuffix) - secrets = append(secrets, name) + if m.AuthSecret != nil { + secrets = append(secrets, m.AuthSecret.Name) } return secrets } diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/perconaxtradb_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/perconaxtradb_helpers.go index 4869a3fab6..4e1d83d77a 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/perconaxtradb_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/perconaxtradb_helpers.go @@ -369,25 +369,20 @@ func (p *PerconaXtraDB) SetTLSDefaults() { } // CertificateName returns the default certificate name and/or certificate secret name for a certificate alias -func (p *PerconaXtraDB) GetPersistentSecrets() []string { +func (p *PerconaXtraDBSpec) GetPersistentSecrets() []string { if p == nil { return nil } var secrets []string - if p.Spec.AuthSecret != nil { - secrets = append(secrets, p.Spec.AuthSecret.Name) + if p.AuthSecret != nil { + secrets = append(secrets, p.AuthSecret.Name) } - if p.Spec.SystemUserSecrets != nil && p.Spec.SystemUserSecrets.ReplicationUserSecret != nil { - secrets = append(secrets, p.Spec.SystemUserSecrets.ReplicationUserSecret.Name) + if p.SystemUserSecrets != nil && p.SystemUserSecrets.ReplicationUserSecret != nil { + secrets = append(secrets, p.SystemUserSecrets.ReplicationUserSecret.Name) } - if p.Spec.SystemUserSecrets != nil && p.Spec.SystemUserSecrets.MonitorUserSecret != nil { - secrets = append(secrets, p.Spec.SystemUserSecrets.MonitorUserSecret.Name) - } - - if p.Spec.Monitor != nil && p.Spec.TLS != nil { - name := meta_util.NameWithSuffix(p.Name, kubedb.MySQLMetricsExporterConfigSecretSuffix) - secrets = append(secrets, name) + if p.SystemUserSecrets != nil && p.SystemUserSecrets.MonitorUserSecret != nil { + secrets = append(secrets, p.SystemUserSecrets.MonitorUserSecret.Name) } return secrets } diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/documentdb_types.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/documentdb_types.go index d52204dd95..e30a5b2415 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/documentdb_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/documentdb_types.go @@ -36,7 +36,7 @@ const ( // +kubebuilder:object:root=true // +kubebuilder:subresource:status -// +kubebuilder:resource:path=documentdbs,singular=documentdb,shortName=docdb,categories={datastore,kubedb,appscode,all} +// +kubebuilder:resource:path=documentdbs,singular=documentdb,shortName=fr,categories={datastore,kubedb,appscode,all} // +kubebuilder:printcolumn:name="Namespace",type="string",JSONPath=".metadata.namespace" // +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".spec.version" // +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase" diff --git a/vendor/kubedb.dev/apimachinery/crds/autoscaling.kubedb.com_qdrantautoscalers.yaml b/vendor/kubedb.dev/apimachinery/crds/autoscaling.kubedb.com_qdrantautoscalers.yaml new file mode 100644 index 0000000000..22c0daa417 --- /dev/null +++ b/vendor/kubedb.dev/apimachinery/crds/autoscaling.kubedb.com_qdrantautoscalers.yaml @@ -0,0 +1,347 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app.kubernetes.io/name: kubedb + name: qdrantautoscalers.autoscaling.kubedb.com +spec: + group: autoscaling.kubedb.com + names: + categories: + - autoscaler + - kubedb + - appscode + kind: QdrantAutoscaler + listKind: QdrantAutoscalerList + plural: qdrantautoscalers + shortNames: + - qdscaler + singular: qdrantautoscaler + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + compute: + properties: + nodeTopology: + properties: + name: + type: string + scaleDownDiffPercentage: + default: 25 + format: int32 + type: integer + scaleUpDiffPercentage: + default: 15 + format: int32 + type: integer + type: object + qdrant: + properties: + containerControlledValues: + enum: + - RequestsAndLimits + - RequestsOnly + type: string + controlledResources: + items: + type: string + type: array + inMemoryStorage: + properties: + scalingFactorPercentage: + format: int32 + type: integer + usageThresholdPercentage: + format: int32 + type: integer + type: object + maxAllowed: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + minAllowed: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + podLifeTimeThreshold: + type: string + resourceDiffPercentage: + format: int32 + type: integer + trigger: + type: string + type: object + type: object + databaseRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + opsRequestOptions: + properties: + apply: + default: IfReady + enum: + - IfReady + - Always + type: string + readinessCriteria: + type: object + timeout: + type: string + type: object + storage: + properties: + qdrant: + properties: + expansionMode: + enum: + - Offline + - Online + type: string + scalingRules: + items: + properties: + appliesUpto: + type: string + threshold: + type: string + required: + - appliesUpto + - threshold + type: object + type: array + scalingThreshold: + format: int32 + type: integer + trigger: + type: string + upperBound: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + usageThreshold: + format: int32 + type: integer + required: + - expansionMode + type: object + type: object + required: + - databaseRef + type: object + status: + properties: + checkpoints: + items: + properties: + cpuHistogram: + properties: + bucketWeights: + items: + properties: + index: + type: integer + weight: + format: int32 + type: integer + required: + - index + - weight + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + referenceTimestamp: + format: date-time + nullable: true + type: string + totalWeight: + format: double + type: number + type: object + firstSampleStart: + format: date-time + nullable: true + type: string + lastSampleStart: + format: date-time + nullable: true + type: string + lastUpdateTime: + format: date-time + nullable: true + type: string + memoryHistogram: + properties: + bucketWeights: + items: + properties: + index: + type: integer + weight: + format: int32 + type: integer + required: + - index + - weight + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + referenceTimestamp: + format: date-time + nullable: true + type: string + totalWeight: + format: double + type: number + type: object + ref: + properties: + containerName: + type: string + vpaObjectName: + type: string + type: object + totalSamplesCount: + type: integer + version: + type: string + type: object + type: array + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + observedGeneration: + format: int64 + type: integer + reason: + type: string + severity: + type: string + status: + type: string + type: + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + observedGeneration: + format: int64 + type: integer + phase: + enum: + - InProgress + - Current + - Terminating + - Failed + type: string + vpas: + items: + properties: + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + recommendation: + properties: + containerRecommendations: + items: + properties: + containerName: + type: string + lowerBound: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + target: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + uncappedTarget: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + upperBound: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + required: + - target + type: object + type: array + type: object + vpaName: + type: string + type: object + type: array + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_documentdbs.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_documentdbs.yaml index 2ad7993032..5dbe40067f 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_documentdbs.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_documentdbs.yaml @@ -17,7 +17,7 @@ spec: listKind: DocumentDBList plural: documentdbs shortNames: - - docdb + - fr singular: documentdb scope: Namespaced versions: diff --git a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_neo4jopsrequests.yaml b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_neo4jopsrequests.yaml index 97013ee80f..f6f380c8bd 100644 --- a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_neo4jopsrequests.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_neo4jopsrequests.yaml @@ -294,14 +294,7 @@ spec: - Reconfigure - VerticalScaling - HorizontalScaling - - VolumeExpansion - - UpdateVersion type: string - updateVersion: - properties: - targetVersion: - type: string - type: object verticalScaling: properties: server: @@ -353,22 +346,6 @@ spec: type: object type: object type: object - volumeExpansion: - properties: - mode: - enum: - - Offline - - Online - type: string - server: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - mode - type: object required: - databaseRef - type diff --git a/vendor/modules.txt b/vendor/modules.txt index 18b62cea32..4ae2ee2979 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -945,7 +945,7 @@ kmodules.xyz/resource-metadata/apis/shared # kmodules.xyz/schema-checker v0.4.2 ## explicit; go 1.22.0 kmodules.xyz/schema-checker -# kubedb.dev/apimachinery v0.64.0 +# kubedb.dev/apimachinery v0.64.0-rc.0.0.20260417065604-9b9f8be7911a ## explicit; go 1.25.0 kubedb.dev/apimachinery/apis kubedb.dev/apimachinery/apis/catalog