generated from phoenix-oss/tenant-tpl
feat(postgres): add demo cluster
This commit is contained in:
parent
b6e8ec3b0e
commit
831c25c09e
2 changed files with 132 additions and 0 deletions
109
postgres/app/helmrelease.yaml
Normal file
109
postgres/app/helmrelease.yaml
Normal file
|
@ -0,0 +1,109 @@
|
|||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: postgres
|
||||
namespace: ${TENANT_NAMESPACE}
|
||||
spec:
|
||||
serviceAccountName: ${TECHNICAL_ACCOUNT}
|
||||
interval: 30m
|
||||
chart:
|
||||
spec:
|
||||
chart: cluster
|
||||
version: 0.3.1
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: cloudnative-pg
|
||||
namespace: ${TENANT_NAMESPACE}
|
||||
install:
|
||||
remediation:
|
||||
retries: 3
|
||||
upgrade:
|
||||
cleanupOnFail: true
|
||||
remediation:
|
||||
strategy: rollback
|
||||
retries: 3
|
||||
values:
|
||||
type: postgresql
|
||||
mode: standalone
|
||||
version:
|
||||
postgresql: "17.5"
|
||||
cluster:
|
||||
instances: 3
|
||||
storage:
|
||||
size: 10Gi
|
||||
storageClass: ocs-storagecluster-ceph-rbd
|
||||
walStorage:
|
||||
# It's not mandatory to split WAL from the main data volume.
|
||||
# However, doing so helps to avoid issues with the main data volume
|
||||
# in cases where WAL exporting to the backup server experiences
|
||||
# issues. For example, in scenarios where there's network congestion
|
||||
# or even failures, the WAL may end up accumulating too much data
|
||||
# to the point where the volume fills up, blocking the cluster from
|
||||
# operating properly.
|
||||
enabled: true
|
||||
size: 10Gi
|
||||
storageClass: ocs-storagecluster-ceph-rbd
|
||||
resources:
|
||||
requests:
|
||||
cpu: "500m"
|
||||
memory: 1Gi
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
enableSuperuserAccess: true
|
||||
superuserSecret: postgres-superuser
|
||||
affinity:
|
||||
topologyKey: failure-domain.beta.kubernetes.io/zone
|
||||
postgresql:
|
||||
parameters:
|
||||
shared_buffers: 256MB
|
||||
max_connections: "400"
|
||||
initdb:
|
||||
database: app
|
||||
owner: app
|
||||
options: []
|
||||
encoding: UTF8
|
||||
backups:
|
||||
# Backups are disabled in this example, but here's an example
|
||||
# on how to configure this cluster to export backups to a S3
|
||||
# bucket hosted on a MinIO server.
|
||||
#
|
||||
# For more information, refer to the helm chart's values.yaml
|
||||
# or the official documentation at
|
||||
# https://cloudnative-pg.io/documentation/1.26/backup/
|
||||
enabled: false
|
||||
endpointURL: https://glacier-1.kvant.cloud
|
||||
provider: s3
|
||||
s3:
|
||||
bucket: phoenix-openshift-backups
|
||||
path: /demo-postgres
|
||||
# Ideally, you will never commit credentials in plain text;
|
||||
# these values are here just for illustration. For a way to
|
||||
# properly load them from kubernetes' secrets, refer to the
|
||||
# commented-ou section 'valuesFrom' placed right below
|
||||
accessKey: your-access-key
|
||||
secretKey: your-secret-key
|
||||
secret:
|
||||
create: true
|
||||
wal:
|
||||
encryption: ""
|
||||
data:
|
||||
encryption: ""
|
||||
scheduledBackups:
|
||||
- name: daily-minio
|
||||
schedule: "@daily"
|
||||
backupOwnerReference: self
|
||||
method: barmanObjectStore
|
||||
retentionPolicy: "180d" # It is mandatory to match this value with the bucket's retention period
|
||||
# valuesFrom:
|
||||
# - kind: Secret
|
||||
# name: postgres-backup-s3 # name of the pre-existing secret that holds the key pair
|
||||
# valuesKey: ACCESS_KEY_ID # name of the key inside the secret that holds the access key value
|
||||
# targetPath: backups.s3.accessKey # path of the configuration that will be assigned the access key value
|
||||
# optional: false
|
||||
# - kind: Secret
|
||||
# name: postgres-backup-s3 # name of the pre-existing secret that holds the key pair
|
||||
# valuesKey: ACCESS_SECRET_KEY # name of the key inside the secret that holds the secret key value
|
||||
# targetPath: backups.s3.secretKey # path of the configuration that will be assigned the secret key value
|
||||
# optional: false
|
23
postgres/ks.yaml
Normal file
23
postgres/ks.yaml
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: &app postgres
|
||||
namespace: ${TENANT_NAMESPACE}
|
||||
spec:
|
||||
targetNamespace: ${TENANT_NAMESPACE}
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./postgres/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: tenant-repos
|
||||
wait: true
|
||||
interval: 10m
|
||||
retryInterval: 1m
|
||||
timeout: 5m
|
||||
dependsOn:
|
||||
- name: vars
|
Loading…
Add table
Add a link
Reference in a new issue