From 59e717b5956e55d5845740d0dfb255fd60d2eb3e Mon Sep 17 00:00:00 2001 From: Arnob Kumar Saha Date: Sun, 1 Nov 2026 11:09:18 +0600 Subject: [PATCH] Add pgpool settings to ace installer options Signed-off-by: Arnob Kumar Saha --- apis/installer/v1alpha1/ace_options_types.go | 12 ++- .../v1alpha1/zz_generated.deepcopy.go | 21 +++++ .../ace-options/values.openapiv3_schema.yaml | 83 +++++++++++++++++++ 3 files changed, 114 insertions(+), 2 deletions(-) diff --git a/apis/installer/v1alpha1/ace_options_types.go b/apis/installer/v1alpha1/ace_options_types.go index 88300ee67..2cfcf9c93 100644 --- a/apis/installer/v1alpha1/ace_options_types.go +++ b/apis/installer/v1alpha1/ace_options_types.go @@ -342,8 +342,10 @@ type AceOptionsInfraKms struct { type AceOptionsSettings struct { DB AceOptionsDBSettings `json:"db"` Cache AceOptionsCacheSettings `json:"cache"` - SMTP AceOptionsSMTPSettings `json:"smtp"` - Proxy *AceOptionsProxy `json:"proxy,omitempty"` + // +optional + PgPool *AceOptionsPgPoolSettings `json:"pgpool,omitempty"` + SMTP AceOptionsSMTPSettings `json:"smtp"` + Proxy *AceOptionsProxy `json:"proxy,omitempty"` // +optional Marketplace *AceOptionsMarketplace `json:"marketplace,omitempty"` @@ -405,6 +407,12 @@ type AceOptionsCacheSettings struct { Resources core.ResourceRequirements `json:"resources"` } +type AceOptionsPgPoolSettings struct { + Enabled bool `json:"enabled"` + Replicas int `json:"replicas"` + Resources core.ResourceRequirements `json:"resources"` +} + type AceOptionsSMTPSettings struct { Enabled bool `json:"enabled"` Host string `json:"host"` diff --git a/apis/installer/v1alpha1/zz_generated.deepcopy.go b/apis/installer/v1alpha1/zz_generated.deepcopy.go index 9bb266d5d..44262c8b3 100644 --- a/apis/installer/v1alpha1/zz_generated.deepcopy.go +++ b/apis/installer/v1alpha1/zz_generated.deepcopy.go @@ -1486,6 +1486,22 @@ func (in *AceOptionsNatsSettings) DeepCopy() *AceOptionsNatsSettings { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AceOptionsPgPoolSettings) DeepCopyInto(out *AceOptionsPgPoolSettings) { + *out = *in + in.Resources.DeepCopyInto(&out.Resources) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AceOptionsPgPoolSettings. +func (in *AceOptionsPgPoolSettings) DeepCopy() *AceOptionsPgPoolSettings { + if in == nil { + return nil + } + out := new(AceOptionsPgPoolSettings) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AceOptionsPlatformInfra) DeepCopyInto(out *AceOptionsPlatformInfra) { *out = *in @@ -1557,6 +1573,11 @@ func (in *AceOptionsSettings) DeepCopyInto(out *AceOptionsSettings) { *out = *in in.DB.DeepCopyInto(&out.DB) in.Cache.DeepCopyInto(&out.Cache) + if in.PgPool != nil { + in, out := &in.PgPool, &out.PgPool + *out = new(AceOptionsPgPoolSettings) + (*in).DeepCopyInto(*out) + } out.SMTP = in.SMTP if in.Proxy != nil { in, out := &in.Proxy, &out.Proxy diff --git a/schema/ace-options/values.openapiv3_schema.yaml b/schema/ace-options/values.openapiv3_schema.yaml index dd0c041f6..617fca241 100644 --- a/schema/ace-options/values.openapiv3_schema.yaml +++ b/schema/ace-options/values.openapiv3_schema.yaml @@ -2789,6 +2789,89 @@ properties: - spreadsheetCredential - spreadsheetID type: object + pgpool: + properties: + enabled: + type: boolean + replicas: + type: integer + resources: + description: ResourceRequirements describes the compute resource requirements. + properties: + claims: + description: 'Claims lists the names of resources, defined in spec.resourceClaims, + + that are used by this container. + + + This field depends on the + + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers.' + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: 'Name must match the name of one entry in pod.spec.resourceClaims + of + + the Pod where this field is used. It makes that resource available + + inside a container.' + type: string + request: + description: 'Request is the name chosen for a request in the + referenced claim. + + If empty, everything from the claim is made available, otherwise + + only the result of this request.' + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + 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 + description: 'Limits describes the maximum amount of compute resources + allowed. + + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + type: object + requests: + 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 + description: 'Requests describes the minimum amount of compute resources + required. + + If Requests is omitted for a container, it defaults to Limits if + that is explicitly specified, + + otherwise to an implementation-defined value. Requests cannot exceed + Limits. + + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + type: object + type: object + required: + - enabled + - replicas + - resources + type: object proxy: properties: httpProxy: