diff --git a/apis/installer/v1alpha1/ace_ace_types.go b/apis/installer/v1alpha1/ace_ace_types.go
index 7f9999fa2..cddf2bf78 100644
--- a/apis/installer/v1alpha1/ace_ace_types.go
+++ b/apis/installer/v1alpha1/ace_ace_types.go
@@ -315,6 +315,15 @@ type Settings struct {
Firebase FirebaseSettings `json:"firebase"`
// +optional
Marketplace *MarketplaceSettings `json:"marketplace,omitempty"`
+ // +optional
+ PgPool *PgPoolSettings `json:"pgpool,omitempty"`
+}
+
+type PgPoolSettings struct {
+ Enabled bool `json:"enabled"`
+ Version string `json:"version"`
+ Replicas int `json:"replicas"`
+ Resources core.ResourceRequirements `json:"resources"`
}
type DBSettings struct {
diff --git a/apis/installer/v1alpha1/zz_generated.deepcopy.go b/apis/installer/v1alpha1/zz_generated.deepcopy.go
index 0d829ae2e..1120712cb 100644
--- a/apis/installer/v1alpha1/zz_generated.deepcopy.go
+++ b/apis/installer/v1alpha1/zz_generated.deepcopy.go
@@ -8981,6 +8981,22 @@ func (in *PersistenceSpec) DeepCopy() *PersistenceSpec {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PgPoolSettings) DeepCopyInto(out *PgPoolSettings) {
+ *out = *in
+ in.Resources.DeepCopyInto(&out.Resources)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgPoolSettings.
+func (in *PgPoolSettings) DeepCopy() *PgPoolSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(PgPoolSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PlacementSpec) DeepCopyInto(out *PlacementSpec) {
*out = *in
@@ -11311,6 +11327,11 @@ func (in *Settings) DeepCopyInto(out *Settings) {
*out = new(MarketplaceSettings)
(*in).DeepCopyInto(*out)
}
+ if in.PgPool != nil {
+ in, out := &in.PgPool, &out.PgPool
+ *out = new(PgPoolSettings)
+ (*in).DeepCopyInto(*out)
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Settings.
diff --git a/catalog/ace.yaml b/catalog/ace.yaml
index 923d41773..39fc7a0a8 100644
--- a/catalog/ace.yaml
+++ b/catalog/ace.yaml
@@ -1,3 +1,3 @@
-- ghcr.io/appscode-charts/ace-installer:v2026.5.22
-- ghcr.io/appscode-charts/ace:v2026.5.22
+- ghcr.io/appscode-charts/ace-installer:v2026.6.15-alpha
+- ghcr.io/appscode-charts/ace:v2026.6.15-alpha
- ghcr.io/appscode-charts/service-gateway:v2026.5.22
diff --git a/charts/ace-installer/Chart.yaml b/charts/ace-installer/Chart.yaml
index 4cf6162a4..b08af8073 100644
--- a/charts/ace-installer/Chart.yaml
+++ b/charts/ace-installer/Chart.yaml
@@ -2,8 +2,8 @@ apiVersion: v2
name: ace-installer
description: ACE Installer
type: application
-version: v2026.5.22
-appVersion: v2026.5.22
+version: v2026.6.15-alpha
+appVersion: v2026.6.15-alpha
kubeVersion: '>=1.28.0-0'
annotations:
charts.openshift.io/name: ace-installer
diff --git a/charts/ace-installer/README.md b/charts/ace-installer/README.md
index c09808bcd..d4f1756ea 100644
--- a/charts/ace-installer/README.md
+++ b/charts/ace-installer/README.md
@@ -7,8 +7,8 @@
```bash
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
-$ helm search repo appscode/ace-installer --version=v2026.5.22
-$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.5.22
+$ helm search repo appscode/ace-installer --version=v2026.6.15-alpha
+$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.6.15-alpha
```
## Introduction
@@ -24,7 +24,7 @@ This chart deploys charts for ACE on a [Kubernetes](http://kubernetes.io) cluste
To install/upgrade the chart with the release name `ace-installer`:
```bash
-$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.5.22
+$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.6.15-alpha
```
The command deploys charts for ACE on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
@@ -151,12 +151,12 @@ The following table lists the configurable parameters of the `ace-installer` cha
Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example:
```bash
-$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.5.22 --set image.proxies.appscode=r.appscode.com
+$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.6.15-alpha --set image.proxies.appscode=r.appscode.com
```
Alternatively, a YAML file that specifies the values for the parameters can be provided while
installing the chart. For example:
```bash
-$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.5.22 --values values.yaml
+$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.6.15-alpha --values values.yaml
```
diff --git a/charts/ace/Chart.yaml b/charts/ace/Chart.yaml
index c39627c9a..a892ce0c5 100644
--- a/charts/ace/Chart.yaml
+++ b/charts/ace/Chart.yaml
@@ -2,8 +2,8 @@ apiVersion: v2
name: ace
description: A Helm chart for AppsCode Container Engine
type: application
-version: v2026.5.22
-appVersion: v2026.5.22
+version: v2026.6.15-alpha
+appVersion: v2026.6.15-alpha
home: https://github.com/appscode-cloud
icon: https://cdn.appscode.com/images/products/bytebuilders/icons/android-icon-192x192.png
sources:
diff --git a/charts/ace/README.md b/charts/ace/README.md
index 8fdd7fc54..8a805ca3d 100644
--- a/charts/ace/README.md
+++ b/charts/ace/README.md
@@ -7,8 +7,8 @@
```bash
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
-$ helm search repo appscode/ace --version=v2026.5.22
-$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.5.22
+$ helm search repo appscode/ace --version=v2026.6.15-alpha
+$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.6.15-alpha
```
## Introduction
@@ -24,7 +24,7 @@ This chart deploys AppsCode Container Engine on a [Kubernetes](http://kubernetes
To install/upgrade the chart with the release name `ace`:
```bash
-$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.5.22
+$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.6.15-alpha
```
The command deploys AppsCode Container Engine on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
@@ -131,6 +131,12 @@ The following table lists the configurable parameters of the `ace` chart and the
| settings.db.auth.username | | postgres |
| settings.db.auth.password | | "xyz" |
| settings.db.logSQL | | false |
+| settings.pgpool.enabled | | false |
+| settings.pgpool.version | | "4.5.0" |
+| settings.pgpool.replicas | | 2 |
+| settings.pgpool.resources.limits.memory | | 512Mi |
+| settings.pgpool.resources.requests.memory | | 256Mi |
+| settings.pgpool.resources.requests.cpu | | 250m |
| settings.cache.version | | "7.2.4" |
| settings.cache.cacheInterval | | 60 |
| settings.cache.persistence.size | | 10Gi |
@@ -245,12 +251,12 @@ The following table lists the configurable parameters of the `ace` chart and the
Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example:
```bash
-$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.5.22 --set gateway.tls.secret.name="ace-cert"
+$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.6.15-alpha --set gateway.tls.secret.name="ace-cert"
```
Alternatively, a YAML file that specifies the values for the parameters can be provided while
installing the chart. For example:
```bash
-$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.5.22 --values values.yaml
+$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.6.15-alpha --values values.yaml
```
diff --git a/charts/ace/templates/_helpers.tpl b/charts/ace/templates/_helpers.tpl
index f1560fba6..25e5f8a72 100644
--- a/charts/ace/templates/_helpers.tpl
+++ b/charts/ace/templates/_helpers.tpl
@@ -173,8 +173,12 @@ Returns the ServiceMonitor labels
Determine database host name
*/}}
{{- define "settings.database.host" -}}
+{{- if .Values.settings.pgpool.enabled -}}
+{{- printf "%s-pgpool.%s.svc:5432" (include "ace.fullname" .) .Release.Namespace -}}
+{{- else -}}
{{- printf "%s-db.%s.svc:5432" (include "ace.fullname" .) .Release.Namespace -}}
{{- end -}}
+{{- end -}}
{{- define "settings.oauth2JWTSecret" -}}
{{ .Values.settings.security.oauth2JWTSecret | default (randAlphaNum 43) }}
diff --git a/charts/ace/templates/db/pgpool.yaml b/charts/ace/templates/db/pgpool.yaml
new file mode 100644
index 000000000..769407bd9
--- /dev/null
+++ b/charts/ace/templates/db/pgpool.yaml
@@ -0,0 +1,47 @@
+{{- if .Values.settings.pgpool.enabled }}
+apiVersion: kubedb.com/v1alpha2
+kind: Pgpool
+metadata:
+ name: {{ include "ace.fullname" . }}-pgpool
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "ace.labels" . | nindent 4 }}
+spec:
+ version: "{{ .Values.settings.pgpool.version }}"
+ replicas: {{ .Values.settings.pgpool.replicas }}
+ postgresRef:
+ name: {{ include "ace.fullname" . }}-db
+ namespace: {{ .Release.Namespace }}
+ syncUsers: true
+ deletionPolicy: {{ .Values.settings.db.deletionPolicy }}
+ podTemplate:
+ spec:
+ containers:
+ - name: pgpool
+ resources:
+ {{- toYaml .Values.settings.pgpool.resources | nindent 10 }}
+ {{- if eq (include "distro.openshift" $) "true" }}
+ securityContext:
+ runAsGroup: {{ .Values.securityContext.runAsUser }}
+ runAsUser: {{ .Values.securityContext.runAsUser }}
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ securityContext:
+ fsGroup: {{ .Values.securityContext.runAsUser }}
+ runAsUser: {{ .Values.securityContext.runAsUser }}
+ runAsGroup: {{ .Values.securityContext.runAsUser }}
+ {{- end }}
+{{- if .Values.global.monitoring }}
+ monitor:
+ agent: {{ .Values.global.monitoring.agent }}
+ prometheus:
+ serviceMonitor:
+ interval: 30s
+ labels:
+ {{- toYaml .Values.global.monitoring.serviceMonitor.labels | nindent 10 }}
+{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/charts/ace/values.openapiv3_schema.yaml b/charts/ace/values.openapiv3_schema.yaml
index 9abb223f2..1aa423163 100644
--- a/charts/ace/values.openapiv3_schema.yaml
+++ b/charts/ace/values.openapiv3_schema.yaml
@@ -24481,6 +24481,53 @@ properties:
- apiURL
- preSharedKey
type: object
+ pgpool:
+ properties:
+ enabled:
+ type: boolean
+ replicas:
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ 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
+ 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
+ type: object
+ type: object
+ version:
+ type: string
+ required:
+ - enabled
+ - replicas
+ - resources
+ - version
+ type: object
platform:
properties:
appName:
diff --git a/charts/ace/values.yaml b/charts/ace/values.yaml
index a1399098a..f03d512b1 100644
--- a/charts/ace/values.yaml
+++ b/charts/ace/values.yaml
@@ -270,6 +270,16 @@ settings:
username: postgres
password: "xyz"
logSQL: false
+ pgpool:
+ enabled: false
+ version: "4.5.0"
+ replicas: 2
+ resources:
+ limits:
+ memory: 512Mi
+ requests:
+ memory: 256Mi
+ cpu: 250m
cache:
version: "7.2.4"
cacheInterval: 60