# Copyright (c) 2022 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.

__cinder_helm_values:
  endpoints: "{{ openstack_helm_endpoints }}"
  images:
    tags: "{{ atmosphere_images | vexxhost.atmosphere.openstack_helm_image_tags('cinder') }}"
  pod:
    replicas:
      api: 3
      scheduler: 3
  conf:
    policy: {}
    cinder:
      DEFAULT:
        allowed_direct_url_schemes: cinder
        backup_driver: cinder.backup.drivers.ceph.CephBackupDriver
        log_config_append: null
        os_region_name: "{{ openstack_helm_endpoints['identity']['auth']['cinder']['region_name'] }}"
        volume_usage_audit_period: hour
        volume_name_template: volume-%s
        image_conversion_disable: true
        osapi_volume_workers: 8
      barbican:
        barbican_endpoint_type: internal
      cors:
        allowed_origins: "*"
      database:
        connection_recycle_time: 10
        max_pool_size: 1
      oslo_messaging_notifications:
        driver: noop
  manifests:
    ingress_api: false
    job_clean: false
    service_ingress_api: false

__cinder_staffeln_helm_values:
  conf:
    policy:
      backup:delete: "rule:admin_api or (project_id:%(project_id)s and http://staffeln-api:8808/v1/backup?backup_id=%(id)s)"

_cinder_ingress_annotations:
  nginx.ingress.kubernetes.io/proxy-body-size: "0"
  nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
