Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions apis/installer/v1alpha1/ace_ace_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,16 @@ 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"`
Replicas int `json:"replicas"`
Resources core.ResourceRequirements `json:"resources"`
// +optional
Config map[string]string `json:"config,omitempty"`
}

type DBSettings struct {
Expand Down
28 changes: 28 additions & 0 deletions apis/installer/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

39 changes: 39 additions & 0 deletions catalog/scripts/operator/imagelist.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
- alpine:3.20
- bats/bats:1.11.0
- ghcr.io/appscode-images/registry:3.1.1
- ghcr.io/appscode/ace:v0.2.0
- ghcr.io/appscode/acerproxy:v0.2.0
- ghcr.io/appscode/aceshifter:v0.0.3
- ghcr.io/appscode/b3:v2026.7.10
- ghcr.io/appscode/billing-ui:2.4.0
- ghcr.io/appscode/catalog-manager:v0.13.0
- ghcr.io/appscode/cert-manager-webhook-ace:v0.0.2
- ghcr.io/appscode/cloudflare-dns-proxy:v0.0.5
- ghcr.io/appscode/cluster-presets:v0.0.12
- ghcr.io/appscode/cluster-ui:2.4.0
- ghcr.io/appscode/curl:alpine
- ghcr.io/appscode/deploy-ui:0.3.6
- ghcr.io/appscode/fileserver:v0.0.1
- ghcr.io/appscode/gh-ci-webhook:v0.0.20
- ghcr.io/appscode/gotenberg:8.25
- ghcr.io/appscode/grafana:v2025.2.3
- ghcr.io/appscode/inbox-server:postgres-latest
- ghcr.io/appscode/inbox-ui:0.0.5
- ghcr.io/appscode/kube-rbac-proxy:v0.18.2
- ghcr.io/appscode/kubectl-nonroot:1.34
- ghcr.io/appscode/kubedb-ui:2.4.0
- ghcr.io/appscode/license-proxyserver:v0.1.1
- ghcr.io/appscode/marketplace-ui:0.3.1
- ghcr.io/appscode/maxmind-geoip:city-mmdb-latest
- ghcr.io/appscode/offline-license-server:v0.0.76
- ghcr.io/appscode/outboxsyncer:v0.5.0
- ghcr.io/appscode/platform-ui:2.4.0
- ghcr.io/appscode/s3proxy:sha-a82ca68
- ghcr.io/appscode/service-provider:v0.0.2
- ghcr.io/appscode/smtprelay:v0.0.4
- ghcr.io/appscode/website:v2026.7.10
- ghcr.io/voyagermesh/crd-manager:v0.2.0
- ghcr.io/voyagermesh/echoserver:v20221109
- ghcr.io/voyagermesh/envoy:v1.37.2-ac
- ghcr.io/voyagermesh/gateway:v1.7.1
- minio/minio:RELEASE.2023-01-12T02-06-16Z
3 changes: 3 additions & 0 deletions catalog/scripts/pgpool/imagelist.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- ghcr.io/appscode-images/pgpool2:4.6.0
- ghcr.io/appscode-images/pgpool2_exporter:v1.2.2
- registry.k8s.io/git-sync/git-sync:v4.4.2
268 changes: 134 additions & 134 deletions charts/ace-installer-certified-crds/README.md

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions charts/ace-installer-certified-crds/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ helm:
enabled: true
version: "v2026.6.19"
values: # +doc-gen:break
global:
featureGates:
Pgpool: true
kubedb-provisioner:
enabled: true
kubedb-catalog:
Expand Down
268 changes: 134 additions & 134 deletions charts/ace-installer-certified/README.md

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions charts/ace-installer-certified/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ helm:
enabled: true
version: "v2026.6.19"
values: # +doc-gen:break
global:
featureGates:
Pgpool: true
kubedb-provisioner:
enabled: true
kubedb-catalog:
Expand Down
268 changes: 134 additions & 134 deletions charts/ace-installer/README.md

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions charts/ace-installer/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ helm:
enabled: true
version: "v2026.6.19"
values: # +doc-gen:break
global:
featureGates:
Pgpool: true
kubedb-provisioner:
enabled: true
kubedb-catalog:
Expand Down
8 changes: 8 additions & 0 deletions charts/ace/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,14 @@ The following table lists the configurable parameters of the `ace` chart and the
| settings.db.auth.username | | <code>postgres</code> |
| settings.db.auth.password | | <code>"xyz"</code> |
| settings.db.logSQL | | <code>false</code> |
| settings.pgpool.enabled | | <code>true</code> |
| settings.pgpool.replicas | | <code>1</code> |
| settings.pgpool.config.num_init_children | | <code>"25"</code> |
| settings.pgpool.config.max_pool | | <code>"15"</code> |
| settings.pgpool.config.client_idle_limit | | <code>"60"</code> |
| settings.pgpool.resources.limits.memory | | <code>512Mi</code> |
| settings.pgpool.resources.requests.memory | | <code>256Mi</code> |
| settings.pgpool.resources.requests.cpu | | <code>250m</code> |
| settings.cache.version | | <code>"7.2.4"</code> |
| settings.cache.cacheInterval | | <code>60</code> |
| settings.cache.persistence.size | | <code>10Gi</code> |
Expand Down
4 changes: 4 additions & 0 deletions charts/ace/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -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:9999" (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) }}
Expand Down
2 changes: 1 addition & 1 deletion charts/ace/templates/db/db-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ metadata:
type: Opaque
stringData:
user.conf: |
max_connections=110
max_connections=400
{{- if .Values.pgoutbox.enabled }}
wal_level=logical
max_wal_senders=50
Expand Down
115 changes: 115 additions & 0 deletions charts/ace/templates/db/pgpool-wait.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
{{- if .Values.settings.pgpool.enabled }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "appscode.serviceAccountName" . }}-pgpool-wait
namespace: {{ .Release.Namespace }}
labels:
{{- include "ace.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ include "ace.fullname" . }}-pgpool-wait
namespace: {{ .Release.Namespace }}
labels:
{{- include "ace.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
rules:
# wait for the Postgres database to become Ready before creating the Pgpool
- apiGroups:
- kubedb.com
resources:
- postgreses
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ include "ace.fullname" . }}-pgpool-wait
namespace: {{ .Release.Namespace }}
labels:
{{- include "ace.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ include "ace.fullname" . }}-pgpool-wait
subjects:
- kind: ServiceAccount
name: {{ include "appscode.serviceAccountName" . }}-pgpool-wait
namespace: {{ .Release.Namespace }}
---
apiVersion: batch/v1
kind: Job
metadata:
name: {{ include "ace.fullname" . }}-pgpool-wait
namespace: {{ .Release.Namespace }}
labels:
{{- include "ace.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "1"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
spec:
activeDeadlineSeconds: 21600
backoffLimit: 3
template:
spec:
{{- include "appscode.imagePullSecrets" . | nindent 6 }}
serviceAccountName: {{ include "appscode.serviceAccountName" . }}-pgpool-wait
automountServiceAccountToken: true
{{- if eq "true" ( include "distro.openshift" . ) }}
securityContext:
{{- toYaml (omit .Values.podSecurityContext "runAsUser" "runAsGroup" "fsGroup" "supplementalGroups") | nindent 8 }}
{{- else }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- end }}
containers:
- name: kubectl
{{- if eq "true" ( include "distro.openshift" . ) }}
securityContext:
{{- toYaml (omit .Values.securityContext "runAsUser" "runAsGroup" "fsGroup" "supplementalGroups") | nindent 12 }}
{{- else }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
{{- end }}
image: "{{ include "kubectl.registry" . }}/{{ .Values.kubectl.repository }}:{{ .Values.kubectl.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.kubectl.pullPolicy }}
command:
- /bin/sh
- -c
- |
echo "Waiting for Postgres {{ include "ace.fullname" . }}-db to become Ready..."
until [ "$(kubectl get pg {{ include "ace.fullname" . }}-db -n {{ .Release.Namespace }} -o jsonpath='{.status.phase}' 2>/dev/null)" = "Ready" ]; do
echo "Postgres {{ include "ace.fullname" . }}-db is not Ready yet. Retrying in 10s..."
sleep 10
done
echo "Postgres {{ include "ace.fullname" . }}-db is Ready. Proceeding to create Pgpool."
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
restartPolicy: Never
{{- end }}
62 changes: 62 additions & 0 deletions charts/ace/templates/db/pgpool.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{{- 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 }}
annotations:
# Create the Pgpool only after the referenced Postgres is Ready. The
# pgpool-wait hook (weight 1) blocks until the DB reports phase=Ready, so
# this higher-weighted hook runs afterwards.
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "2"
"helm.sh/hook-delete-policy": before-hook-creation
spec:
version: "4.6.0"
replicas: {{ .Values.settings.pgpool.replicas }}
postgresRef:
name: {{ include "ace.fullname" . }}-db
namespace: {{ .Release.Namespace }}
syncUsers: true
deletionPolicy: {{ .Values.settings.db.deletionPolicy }}
{{- if .Values.settings.pgpool.config }}
configuration:
inline:
pgpool.conf: |
{{- range $k, $v := .Values.settings.pgpool.config }}
{{ $k }}={{ $v }}
{{- end }}
{{- end }}
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 }}
Loading
Loading