deploymentMode: Monolithic loki: auth_enabled: false commonConfig: path_prefix: /var/loki replication_factor: 1 schemaConfig: configs: - from: "2026-01-01" store: tsdb object_store: filesystem schema: v13 index: prefix: index_ period: 24h storage: type: filesystem filesystem: chunks_directory: /var/loki/chunks rules_directory: /var/loki/rules compactor: working_directory: /var/loki/compactor retention_enabled: true delete_request_store: filesystem limits_config: reject_old_samples: true reject_old_samples_max_age: 168h retention_period: 2160h # 90 days ingestion_rate_mb: 16 ingestion_burst_size_mb: 32 max_query_parallelism: 16 query_timeout: 5m volume_enabled: true singleBinary: replicas: 1 sidecar: false nodeSelector: homelab.hexor.cy/pool: core homelab.hexor.cy/exposure: external kubernetes.io/hostname: music priorityClassName: monitoring-critical terminationGracePeriodSeconds: 120 resources: requests: cpu: 500m memory: 2Gi limits: cpu: "4" memory: 8Gi podDisruptionBudget: enabled: false persistence: enabled: true size: 200Gi storageClass: monitoring-local selector: matchLabels: monitoring.hexor.cy/volume: loki whenDeleted: Retain whenScaled: Retain # These must be zero in filesystem-backed monolithic mode. read: replicas: 0 write: replicas: 0 backend: replicas: 0 chunksCache: enabled: false resultsCache: enabled: false sidecar: rules: enabled: false gateway: enabled: true # Gateway replicas can run on either external core node; Loki storage stays on music. replicas: 2 nodeSelector: homelab.hexor.cy/pool: core homelab.hexor.cy/exposure: external # Allow a surge pod to share a node during rolling updates. affinity: null priorityClassName: monitoring-critical verboseLogging: false resources: requests: cpu: 50m memory: 64Mi limits: cpu: 500m memory: 256Mi podDisruptionBudget: enabled: true test: enabled: false lokiCanary: enabled: true resources: requests: cpu: 10m memory: 32Mi limits: cpu: 100m memory: 128Mi monitoring: dashboards: enabled: true rules: enabled: true alerts: enabled: true serviceMonitor: enabled: true interval: 30s