## ## @section Common parameters ## ## @typedef {struct} ClusterProcessCounts - Process counts for different roles. ## @field {int} stateless - Number of stateless processes (-1 for automatic). ## @field {int} storage - Number of storage processes (determines cluster size). ## @field {int} cluster_controller - Number of cluster controller processes. ## @typedef {struct} ClusterFaultDomain - Fault domain configuration. ## @field {string} key - Fault domain key. ## @field {string} valueFrom - Fault domain value source. ## @typedef {struct} Cluster - Cluster configuration. ## @field {ClusterProcessCounts} processCounts - Process counts for different roles. ## @field {string} version - Version of FoundationDB to use. ## @field {string} redundancyMode - Database redundancy mode (single, double, triple, three_datacenter, three_datacenter_fallback). ## @field {string} storageEngine - Storage engine (ssd-2, ssd-redwood-v1, ssd-rocksdb-v1, memory). ## @field {ClusterFaultDomain} faultDomain - Fault domain configuration. ## @param {Cluster} cluster - Cluster configuration. cluster: processCounts: stateless: -1 storage: 3 cluster_controller: 1 version: "7.3.63" redundancyMode: "double" storageEngine: "ssd-2" faultDomain: key: "kubernetes.io/hostname" valueFrom: "spec.nodeName" ## @typedef {struct} Storage - Storage configuration. ## @field {quantity} size - Size of persistent volumes for each instance. ## @field {string} storageClass - Storage class (if not set, uses cluster default). ## @param {Storage} storage - Storage configuration. storage: size: "16Gi" storageClass: "" ## @typedef {struct} Resources - Explicit CPU and memory configuration for each FoundationDB instance. ## @field {quantity} [cpu] - CPU available to each instance. ## @field {quantity} [memory] - Memory (RAM) available to each instance. ## @enum {string} ResourcesPreset - Default sizing preset. ## @value small ## @value medium ## @value large ## @value xlarge ## @value 2xlarge ## @param {Resources} [resources] - Explicit CPU and memory configuration for each FoundationDB instance. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} ## @param {ResourcesPreset} resourcesPreset="medium" - Default sizing preset used when `resources` is omitted. resourcesPreset: "medium" ## @typedef {struct} BackupS3Credentials - S3 credentials. ## @field {string} accessKeyId - S3 access key ID. ## @field {string} secretAccessKey - S3 secret access key. ## @typedef {struct} BackupS3 - S3 configuration for backups. ## @field {string} bucket - S3 bucket name. ## @field {string} endpoint - S3 endpoint URL. ## @field {string} region - S3 region. ## @field {BackupS3Credentials} credentials - S3 credentials. ## @typedef {struct} Backup - Backup configuration. ## @field {bool} enabled - Enable backups. ## @field {BackupS3} s3 - S3 configuration for backups. ## @field {string} retentionPolicy - Retention policy for backups. ## @param {Backup} backup - Backup configuration. backup: enabled: false s3: bucket: "" endpoint: "" region: "us-east-1" credentials: accessKeyId: "" secretAccessKey: "" retentionPolicy: "7d" ## @typedef {struct} Monitoring - Monitoring configuration. ## @field {bool} enabled - Enable WorkloadMonitor integration. ## @param {Monitoring} monitoring - Monitoring configuration. monitoring: enabled: true ## ## @section FoundationDB configuration ## ## @param {[]string} customParameters - Custom parameters to pass to FoundationDB. customParameters: [] ## @enum {string} ImageType - Container image deployment type. ## @value unified ## @value split ## @param {ImageType} imageType="unified" - Container image deployment type. imageType: "unified" ## @typedef {struct} SecurityContext - Security context for containers. ## @field {int} runAsUser - User ID to run the container. ## @field {int} runAsGroup - Group ID to run the container. ## @param {SecurityContext} securityContext - Security context for containers. securityContext: runAsUser: 4059 runAsGroup: 4059 ## @param {bool} automaticReplacements - Enable automatic pod replacements. automaticReplacements: true