# 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
    storage:
      type: filesystem
    schemaConfig:
      configs:
        - from: 2024-04-01
          store: tsdb
          object_store: filesystem
          schema: v13
          index:
            prefix: index_
            period: 24h
  test:
    enabled: false
  singleBinary:
    replicas: 1
    nodeSelector:
      openstack-control-plane: enabled
    persistence:
      size: 256Gi
  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
