--- # yaml-language-server: $schema=https://ks.hsn.dev/helm.toolkit.fluxcd.io/helmrelease_v2beta2.json apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: name: loki spec: interval: 30m timeout: 15m chart: spec: chart: loki version: 6.1.0 sourceRef: kind: HelmRepository name: grafana namespace: flux-system install: remediation: retries: 3 upgrade: cleanupOnFail: true remediation: retries: 3 uninstall: keepHistory: false dependsOn: - name: openebs namespace: openebs-system - name: rook-ceph-cluster namespace: rook-ceph - name: vector-agent namespace: observability - name: vector-aggregator namespace: observability values: deploymentMode: SimpleScalable loki: podAnnotations: secret.reloader.stakater.com/reload: loki-secret ingester: chunk_encoding: snappy storage: type: s3 bucketNames: chunks: loki-chunks ruler: loki-ruler admin: loki-admin s3: s3ForcePathStyle: true schemaConfig: configs: - from: "2024-04-01" store: tsdb object_store: s3 schema: v13 index: prefix: loki_index_ period: 24h structuredConfig: auth_enabled: false server: log_level: info http_listen_port: 3100 grpc_listen_port: 9095 grpc_server_max_recv_msg_size: 8388608 grpc_server_max_send_msg_size: 8388608 limits_config: ingestion_burst_size_mb: 128 ingestion_rate_mb: 64 max_query_parallelism: 100 per_stream_rate_limit: 64M per_stream_rate_limit_burst: 128M reject_old_samples: true reject_old_samples_max_age: 168h retention_period: 30d shard_streams: enabled: true split_queries_by_interval: 1h query_scheduler: max_outstanding_requests_per_tenant: 4096 frontend: max_outstanding_per_tenant: 4096 ruler: enable_api: true enable_alertmanager_v2: true alertmanager_url: http://alertmanager-operated.observability.svc.cluster.local:9093 storage: type: local local: directory: /rules rule_path: /rules analytics: reporting_enabled: false gateway: replicas: 3 enabled: true image: registry: ghcr.io repository: nginxinc/nginx-unprivileged tag: 1.25-alpine@sha256:5b49ce26ad8555b649a5a5ea8ccdfabc742a284ab58cb7b7d7a56f178c5dd351 deploymentStrategy: type: RollingUpdate rollingUpdate: maxUnavailable: 50% maxSurge: 50% topologySpreadConstraints: - maxSkew: 2 topologyKey: kubernetes.io/hostname whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: app.kubernetes.io/name: loki app.kubernetes.io/component: gateway ingress: enabled: true ingressClassName: internal-nginx hosts: - host: &host loki.jahanson.tech paths: - path: / pathType: Prefix tls: - hosts: - *host write: replicas: 3 persistence: storageClass: openebs-hostpath read: replicas: 3 backend: replicas: 3 persistence: storageClass: openebs-hostpath monitoring: dashboards: annotations: grafana_folder: Loki rules: enabled: false serviceMonitor: enabled: false metricsInstance: enabled: false selfMonitoring: enabled: false grafanaAgent: installOperator: false lokiCanary: enabled: false test: enabled: false valuesFrom: - kind: Secret name: loki-secret valuesKey: S3_BUCKET_HOST targetPath: loki.storage.s3.endpoint - kind: Secret name: loki-secret valuesKey: S3_BUCKET_REGION targetPath: loki.storage.s3.region - kind: Secret name: loki-secret valuesKey: S3_ACCESS_KEY targetPath: loki.storage.s3.accessKeyId - kind: Secret name: loki-secret valuesKey: S3_SECRET_KEY targetPath: loki.storage.s3.secretAccessKey