## ## @section Common parameters ## ## @typedef {struct} Resources - Explicit CPU and memory configuration for each FerretDB replica. ## @field {quantity} [cpu] - CPU available to each replica. ## @field {quantity} [memory] - Memory (RAM) available to each replica. ## @enum {string} ResourcesPreset - Default sizing preset. ## @value nano ## @value micro ## @value small ## @value medium ## @value large ## @value xlarge ## @value 2xlarge ## @param {int} replicas - Number of replicas. replicas: 2 ## @param {Resources} [resources] - Explicit CPU and memory configuration for each FerretDB replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} ## @param {ResourcesPreset} resourcesPreset="micro" - Default sizing preset used when `resources` is omitted. resourcesPreset: "micro" ## @param {quantity} size - Persistent Volume Claim size available for application data. size: 10Gi ## @param {string} storageClass - StorageClass used to store the data. storageClass: "" ## @param {bool} external - Enable external access from outside the cluster. external: false ## ## @section Application-specific parameters ## ## @typedef {struct} Quorum - Configuration for quorum-based synchronous replication. ## @field {int} minSyncReplicas - Minimum number of synchronous replicas required for commit. ## @field {int} maxSyncReplicas - Maximum number of synchronous replicas allowed (must be less than total replicas). ## @param {Quorum} quorum - Configuration for quorum-based synchronous replication. quorum: minSyncReplicas: 0 maxSyncReplicas: 0 ## @typedef {struct} User - User configuration. ## @field {string} [password] - Password for the user. ## @param {map[string]User} users - Users configuration map. users: {} ## Example: ## users: ## user1: ## password: strongpassword ## user2: ## password: hackme ## ## ## @section Backup parameters ## ## @typedef {struct} Backup - Backup configuration. ## @field {bool} enabled - Enable regular backups (default: false). ## @field {string} schedule - Cron schedule for automated backups. ## @field {string} retentionPolicy - Retention policy. ## @field {string} endpointURL - S3 endpoint URL for uploads. ## @field {string} destinationPath - Path to store the backup (e.g. s3://bucket/path/to/folder/). ## @field {string} s3AccessKey - Access key for S3 authentication. ## @field {string} s3SecretKey - Secret key for S3 authentication. ## @param {Backup} backup - Backup configuration. backup: enabled: false schedule: "0 2 * * * *" retentionPolicy: 30d endpointURL: http://minio-gateway-service:9000 destinationPath: s3://bucket/path/to/folder/ s3AccessKey: "" s3SecretKey: "" ## ## @section Bootstrap (recovery) parameters ## ## @typedef {struct} Bootstrap - Bootstrap configuration for restoring a database cluster from a backup. ## @field {bool} [enabled] - Restore database cluster from a backup. ## @field {string} [recoveryTime] - Timestamp (RFC3339) for point-in-time recovery; empty means latest. ## @field {string} [oldName] - Name of database cluster before deletion. ## @param {Bootstrap} bootstrap - Bootstrap configuration. bootstrap: enabled: false recoveryTime: "" oldName: ""