## ## @section Common parameters ## ## @typedef {struct} Resources - Explicit CPU and memory configuration for each NATS 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 NATS replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} ## @param {ResourcesPreset} resourcesPreset="nano" - Default sizing preset used when `resources` is omitted. resourcesPreset: "nano" ## @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} 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: {} ## @typedef {struct} Jetstream - Jetstream configuration. ## @field {bool} enabled=true - Enable or disable Jetstream for persistent messaging in NATS. ## @field {quantity} size - Jetstream persistent storage size. ## @param {Jetstream} jetstream - Jetstream configuration. jetstream: enabled: true size: 10Gi ## @typedef {struct} Config - NATS configuration. ## @field {*object} [merge] - Additional configuration to merge into NATS config. ## @field {*object} [resolver] - Additional resolver configuration to merge into NATS config. ## @param {Config} config - NATS configuration. config: merge: {} resolver: {}