Skip to content

Commit b4e71c9

Browse files
committed
added pgpool on postgres
Signed-off-by: notTabassum <oyshee@appscode.com>
1 parent 88effb3 commit b4e71c9

7 files changed

Lines changed: 164 additions & 0 deletions

File tree

apis/installer/v1alpha1/ace_ace_types.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,15 @@ type Settings struct {
315315
Firebase FirebaseSettings `json:"firebase"`
316316
// +optional
317317
Marketplace *MarketplaceSettings `json:"marketplace,omitempty"`
318+
// +optional
319+
PgPool *PgPoolSettings `json:"pgpool,omitempty"`
320+
}
321+
322+
type PgPoolSettings struct {
323+
Enabled bool `json:"enabled"`
324+
Version string `json:"version"`
325+
Replicas int `json:"replicas"`
326+
Resources core.ResourceRequirements `json:"resources"`
318327
}
319328

320329
type DBSettings struct {

apis/installer/v1alpha1/zz_generated.deepcopy.go

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

charts/ace/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,12 @@ The following table lists the configurable parameters of the `ace` chart and the
131131
| settings.db.auth.username | | <code>postgres</code> |
132132
| settings.db.auth.password | | <code>"xyz"</code> |
133133
| settings.db.logSQL | | <code>false</code> |
134+
| settings.pgpool.enabled | | <code>false</code> |
135+
| settings.pgpool.version | | <code>"4.5.0"</code> |
136+
| settings.pgpool.replicas | | <code>2</code> |
137+
| settings.pgpool.resources.limits.memory | | <code>512Mi</code> |
138+
| settings.pgpool.resources.requests.memory | | <code>256Mi</code> |
139+
| settings.pgpool.resources.requests.cpu | | <code>250m</code> |
134140
| settings.cache.version | | <code>"7.2.4"</code> |
135141
| settings.cache.cacheInterval | | <code>60</code> |
136142
| settings.cache.persistence.size | | <code>10Gi</code> |

charts/ace/templates/_helpers.tpl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,12 @@ Returns the ServiceMonitor labels
173173
Determine database host name
174174
*/}}
175175
{{- define "settings.database.host" -}}
176+
{{- if .Values.settings.pgpool.enabled -}}
177+
{{- printf "%s-pgpool.%s.svc:5432" (include "ace.fullname" .) .Release.Namespace -}}
178+
{{- else -}}
176179
{{- printf "%s-db.%s.svc:5432" (include "ace.fullname" .) .Release.Namespace -}}
177180
{{- end -}}
181+
{{- end -}}
178182

179183
{{- define "settings.oauth2JWTSecret" -}}
180184
{{ .Values.settings.security.oauth2JWTSecret | default (randAlphaNum 43) }}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{{- if .Values.settings.pgpool.enabled }}
2+
apiVersion: kubedb.com/v1alpha2
3+
kind: Pgpool
4+
metadata:
5+
name: {{ include "ace.fullname" . }}-pgpool
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
{{- include "ace.labels" . | nindent 4 }}
9+
spec:
10+
version: "{{ .Values.settings.pgpool.version }}"
11+
replicas: {{ .Values.settings.pgpool.replicas }}
12+
postgresRef:
13+
name: {{ include "ace.fullname" . }}-db
14+
namespace: {{ .Release.Namespace }}
15+
syncUsers: true
16+
deletionPolicy: {{ .Values.settings.db.deletionPolicy }}
17+
podTemplate:
18+
spec:
19+
containers:
20+
- name: pgpool
21+
resources:
22+
{{- toYaml .Values.settings.pgpool.resources | nindent 10 }}
23+
{{- if eq (include "distro.openshift" $) "true" }}
24+
securityContext:
25+
runAsGroup: {{ .Values.securityContext.runAsUser }}
26+
runAsUser: {{ .Values.securityContext.runAsUser }}
27+
capabilities:
28+
drop:
29+
- ALL
30+
runAsNonRoot: true
31+
seccompProfile:
32+
type: RuntimeDefault
33+
securityContext:
34+
fsGroup: {{ .Values.securityContext.runAsUser }}
35+
runAsUser: {{ .Values.securityContext.runAsUser }}
36+
runAsGroup: {{ .Values.securityContext.runAsUser }}
37+
{{- end }}
38+
{{- if .Values.global.monitoring }}
39+
monitor:
40+
agent: {{ .Values.global.monitoring.agent }}
41+
prometheus:
42+
serviceMonitor:
43+
interval: 30s
44+
labels:
45+
{{- toYaml .Values.global.monitoring.serviceMonitor.labels | nindent 10 }}
46+
{{- end }}
47+
---
48+
apiVersion: appcatalog.appscode.com/v1alpha1
49+
kind: AppBinding
50+
metadata:
51+
name: {{ include "ace.fullname" . }}-pgpool
52+
namespace: {{ .Release.Namespace }}
53+
labels:
54+
{{- include "ace.labels" . | nindent 4 }}
55+
spec:
56+
type: kubedb.com/pgpool
57+
appRef:
58+
apiGroup: kubedb.com
59+
kind: Pgpool
60+
name: {{ include "ace.fullname" . }}-pgpool
61+
namespace: {{ .Release.Namespace }}
62+
clientConfig:
63+
service:
64+
name: {{ include "ace.fullname" . }}-pgpool
65+
scheme: postgresql
66+
port: 5432
67+
{{- end }}

charts/ace/values.openapiv3_schema.yaml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24481,6 +24481,53 @@ properties:
2448124481
- apiURL
2448224482
- preSharedKey
2448324483
type: object
24484+
pgpool:
24485+
properties:
24486+
enabled:
24487+
type: boolean
24488+
replicas:
24489+
type: integer
24490+
resources:
24491+
properties:
24492+
claims:
24493+
items:
24494+
properties:
24495+
name:
24496+
type: string
24497+
request:
24498+
type: string
24499+
required:
24500+
- name
24501+
type: object
24502+
type: array
24503+
x-kubernetes-list-map-keys:
24504+
- name
24505+
x-kubernetes-list-type: map
24506+
limits:
24507+
additionalProperties:
24508+
anyOf:
24509+
- type: integer
24510+
- type: string
24511+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
24512+
x-kubernetes-int-or-string: true
24513+
type: object
24514+
requests:
24515+
additionalProperties:
24516+
anyOf:
24517+
- type: integer
24518+
- type: string
24519+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
24520+
x-kubernetes-int-or-string: true
24521+
type: object
24522+
type: object
24523+
version:
24524+
type: string
24525+
required:
24526+
- enabled
24527+
- replicas
24528+
- resources
24529+
- version
24530+
type: object
2448424531
platform:
2448524532
properties:
2448624533
appName:

charts/ace/values.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,16 @@ settings:
270270
username: postgres
271271
password: "xyz"
272272
logSQL: false
273+
pgpool:
274+
enabled: false
275+
version: "4.5.0"
276+
replicas: 2
277+
resources:
278+
limits:
279+
memory: 512Mi
280+
requests:
281+
memory: 256Mi
282+
cpu: 250m
273283
cache:
274284
version: "7.2.4"
275285
cacheInterval: 60

0 commit comments

Comments
 (0)