# 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.

_ovn_helm_values:
  images:
    tags: "{{ atmosphere_images | vexxhost.atmosphere.openstack_helm_image_tags('ovn') }}"
  labels:
    ovn_ovsdb_nb:
      node_selector_key: openstack-control-plane
      node_selector_value: enabled
    ovn_ovsdb_sb:
      node_selector_key: openstack-control-plane
      node_selector_value: enabled
    ovn_northd:
      node_selector_key: openstack-control-plane
      node_selector_value: enabled
    ovn_controller_gw:
      node_selector_key: openstack-control-plane
      node_selector_value: enabled
  volume:
    ovn_ovsdb_nb:
      size: 20Gi
    ovn_ovsdb_sb:
      size: 20Gi
  pod:
    probes:
      ovn_northd:
        northd:
          liveness:
            enabled: true
            params:
              initialDelaySeconds: 30
              timeoutSeconds: 30
              periodSeconds: 60
    affinity:
      anti:
        type:
          default: requiredDuringSchedulingIgnoredDuringExecution
        topologyKey:
          default: kubernetes.io/hostname
        weight:
          default: 10
    replicas:
      ovn_ovsdb_nb: 3
      ovn_ovsdb_sb: 3
      ovn_northd: 3
    sidecars:
      ovn_logging_parser: "{{ ovn_network_logging_parser_enabled }}"
      vector: "{{ ovn_network_logging_parser_enabled }}"
