# Copyright (c) 2023 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

_loki_helm_values:
  deploymentMode: SingleBinary
  loki:
    server:
      log_level: warn
    image:
      registry: "{{ atmosphere_images['loki'] | vexxhost.kubernetes.docker_image('domain') }}"
      repository: "{{ atmosphere_images['loki'] | vexxhost.kubernetes.docker_image('path') }}"
      tag: "{{ atmosphere_images['loki'] | vexxhost.kubernetes.docker_image('tag') }}"
    auth_enabled: false
    commonConfig:
      replication_factor: 1
    compactor:
      working_directory: /var/loki/compactor
      compaction_interval: 10m
      retention_enabled: true
      delete_request_store: filesystem
      retention_delete_delay: 2h
      retention_delete_worker_count: 150
    limits_config:
      max_label_names_per_series: 25
      retention_period: 30d
    rulerConfig:
      alertmanager_url: http://alertmanager-operated.monitoring:9093
      enable_alertmanager_v2: true
      enable_api: true
      rule_path: /var/loki/rules-temp
      ring:
        kvstore:
          store: inmemory
      storage:
        type: local
        local:
          directory: /var/loki/rulestorage
    storage:
      type: filesystem
    schemaConfig:
      configs:
        - from: 2024-04-01
          store: tsdb
          object_store: filesystem
          schema: v13
          index:
            prefix: index_
            period: 24h
  memcached:
    image:
      repository: "{{ atmosphere_images['memcached'] | vexxhost.kubernetes.docker_image('name') }}"
      tag: "{{ atmosphere_images['memcached'] | vexxhost.kubernetes.docker_image('tag') }}"
  memcachedExporter:
    image:
      repository: "{{ atmosphere_images['prometheus_memcached_exporter'] | vexxhost.kubernetes.docker_image('name') }}"
      tag: "{{ atmosphere_images['prometheus_memcached_exporter'] | vexxhost.kubernetes.docker_image('tag') }}"
  test:
    enabled: false
  singleBinary:
    replicas: 1
    nodeSelector:
      openstack-control-plane: enabled
    persistence:
      size: 256Gi
    extraVolumeMounts:
      - name: rules
        mountPath: /var/loki/rulestorage/fake
    extraVolumes:
      - name: rules
        configMap:
          name: loki-alerting-rules
  write:
    replicas: 0
  read:
    replicas: 0
  backend:
    replicas: 0
  gateway:
    image:
      registry: "{{ atmosphere_images['loki_gateway'] | vexxhost.kubernetes.docker_image('domain') }}"
      repository: "{{ atmosphere_images['loki_gateway'] | vexxhost.kubernetes.docker_image('path') }}"
      tag: "{{ atmosphere_images['loki_gateway'] | vexxhost.kubernetes.docker_image('tag') }}"
    nodeSelector:
      openstack-control-plane: enabled
  lokiCanary:
    enabled: false
  extraObjects:
    - apiVersion: v1
      kind: ConfigMap
      metadata:
        name: loki-alerting-rules
        labels:
          loki_rule: "atmosphere"
      data:
        loki-alerting-rules.yaml: |-
          groups:
            - name: additional-loki-rules
              rules:
                - alert: NovaCellNotResponding
                  expr: 'count_over_time({pod_label_component="compute"} |= "not responding and hence is being omitted from the results" [1m]) > 0'
                  labels:
                    severity: critical
                  annotations:
                    summary: Nova Cell is not responding. It can cause port deletion in CAPI.
