## @section Common parameters ## ## @param replicas {int} Number of Postgres replicas replicas: 2 ## @param resources {*resources} Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied. ## @field resources.cpu {*quantity} CPU available to each replica ## @field resources.memory {*quantity} Memory (RAM) available to each replica resources: {} # resources: # cpu: 4000m # memory: 4Gi ## @param resourcesPreset {string enum:"nano,micro,small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. resourcesPreset: "micro" ## @param size {quantity} Persistent Volume Claim size, available for application data size: 10Gi ## @param storageClass {string} StorageClass used to store the data storageClass: "" ## @param external {bool} Enable external access from outside the cluster external: false ## @section Application-specific parameters ## @param postgresql {postgresql} PostgreSQL server configuration ## @field postgresql.parameters {postgresqlParameters} PostgreSQL server parameters ## @field postgresqlParameters.max_connections {int} Determines the maximum number of concurrent connections to the database server. The default is typically 100 connections ## postgresql: parameters: max_connections: 100 ## Configuration for the quorum-based synchronous replication ## @param quorum {quorum} Quorum configuration for synchronous replication ## @field quorum.minSyncReplicas {int} Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. ## @field quorum.maxSyncReplicas {int} Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances). quorum: minSyncReplicas: 0 maxSyncReplicas: 0 ## @param users {map[string]user} Users configuration ## @field user.password {*string} Password for the user ## @field user.replication {*bool} Whether the user has replication privileges ## ## Example: ## users: ## user1: ## password: strongpassword ## user2: ## password: hackme ## airflow: ## password: qwerty123 ## debezium: ## replication: true ## users: {} ## @param databases {map[string]database} Databases configuration ## @field database.roles {*databaseRoles} Roles for the database ## @field databaseRoles.admin {[]string} List of users with admin privileges ## @field databaseRoles.readonly {[]string} List of users with read-only privileges ## @field database.extensions {[]string} Extensions enabled for the database ## ## Example: ## databases: ## myapp: ## roles: ## admin: ## - user1 ## - debezium ## readonly: ## - user2 ## airflow: ## roles: ## admin: ## - airflow ## extensions: ## - hstore databases: {} ## @section Backup parameters ## @param backup {backup} Backup configuration ## @field backup.enabled {*bool} Enable regular backups ## @field backup.schedule {*string} Cron schedule for automated backups ## @field backup.retentionPolicy {*string} Retention policy ## @field backup.destinationPath {*string} Path to store the backup (i.e. s3://bucket/path/to/folder) ## @field backup.endpointURL {*string} S3 Endpoint used to upload data to the cloud ## @field backup.s3AccessKey {*string} Access key for S3, used for authentication ## @field backup.s3SecretKey {*string} Secret key for S3, used for authentication backup: enabled: false retentionPolicy: 30d destinationPath: "s3://bucket/path/to/folder/" endpointURL: "http://minio-gateway-service:9000" schedule: "0 2 * * * *" s3AccessKey: "" s3SecretKey: "" ## @section Bootstrap (recovery) parameters ## @param bootstrap {bootstrap} Bootstrap configuration ## @field bootstrap.enabled {bool} Restore database cluster from a backup ## @field bootstrap.recoveryTime {*string} Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest ## @field bootstrap.oldName {string} Name of database cluster before deleting ## bootstrap: enabled: false # example: 2020-11-26 15:22:00.00000+00 recoveryTime: "" oldName: ""