feat: add shared PgBouncer deployment
This commit is contained in:
20
argocd/pgbouncer-app.yaml
Normal file
20
argocd/pgbouncer-app.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: pgbouncer
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@git-ssh.lunarfront.tech/ryan/lunarfront-charts.git
|
||||||
|
targetRevision: main
|
||||||
|
path: pgbouncer
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: pgbouncer
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
25
pgbouncer/configmap.yaml
Normal file
25
pgbouncer/configmap.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: pgbouncer-config
|
||||||
|
namespace: pgbouncer
|
||||||
|
data:
|
||||||
|
pgbouncer.ini: |
|
||||||
|
[databases]
|
||||||
|
gitea = host=lunarfront-postgres-do-user-35277853-0.e.db.ondigitalocean.com port=25060 dbname=gitea user=gitea
|
||||||
|
windmill = host=lunarfront-postgres-do-user-35277853-0.e.db.ondigitalocean.com port=25060 dbname=windmill user=windmill
|
||||||
|
|
||||||
|
[pgbouncer]
|
||||||
|
listen_port = 5432
|
||||||
|
listen_addr = 0.0.0.0
|
||||||
|
auth_type = plain
|
||||||
|
auth_file = /etc/pgbouncer/userlist.txt
|
||||||
|
pool_mode = transaction
|
||||||
|
max_client_conn = 200
|
||||||
|
default_pool_size = 5
|
||||||
|
min_pool_size = 1
|
||||||
|
reserve_pool_size = 2
|
||||||
|
server_tls_sslmode = require
|
||||||
|
ignore_startup_parameters = extra_float_digits
|
||||||
|
log_connections = 0
|
||||||
|
log_disconnections = 0
|
||||||
51
pgbouncer/deployment.yaml
Normal file
51
pgbouncer/deployment.yaml
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: pgbouncer
|
||||||
|
namespace: pgbouncer
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: pgbouncer
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: pgbouncer
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: pgbouncer
|
||||||
|
image: pgbouncer/pgbouncer:1.23.1
|
||||||
|
ports:
|
||||||
|
- containerPort: 5432
|
||||||
|
volumeMounts:
|
||||||
|
- name: config
|
||||||
|
mountPath: /etc/pgbouncer/pgbouncer.ini
|
||||||
|
subPath: pgbouncer.ini
|
||||||
|
- name: userlist
|
||||||
|
mountPath: /etc/pgbouncer/userlist.txt
|
||||||
|
subPath: userlist.txt
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 32Mi
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 64Mi
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: 5432
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 30
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: 5432
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
volumes:
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: pgbouncer-config
|
||||||
|
- name: userlist
|
||||||
|
secret:
|
||||||
|
secretName: pgbouncer-userlist
|
||||||
11
pgbouncer/service.yaml
Normal file
11
pgbouncer/service.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: pgbouncer
|
||||||
|
namespace: pgbouncer
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: pgbouncer
|
||||||
|
ports:
|
||||||
|
- port: 5432
|
||||||
|
targetPort: 5432
|
||||||
Reference in New Issue
Block a user