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

octavia_helm_release_name: octavia
octavia_helm_chart_path: "../../charts/octavia/"
octavia_helm_chart_ref: /usr/local/src/octavia

octavia_helm_release_namespace: openstack
octavia_helm_kubeconfig: "{{ kubeconfig_path | default('/etc/kubernetes/admin.conf') }}"
octavia_helm_values: {}

# Class name to use for the Ingress
octavia_ingress_class_name: "{{ atmosphere_ingress_class_name }}"

# List of annotations to apply to the Ingress
octavia_ingress_annotations: {}

# TLS settings
octavia_tls_server_common_name: octavia-server
octavia_tls_server_private_key_algorithm: ECDSA
octavia_tls_server_private_key_size: 256
octavia_tls_client_common_name: octavia-client
octavia_tls_client_private_key_algorithm: ECDSA
octavia_tls_client_private_key_size: 256

# Heartbeat key
octavia_heartbeat_key: "{{ undef(hint='You must specify a Octavia heartbeat key') }}"

# Octavia management subnet (CIDR)
octavia_management_network_name: lb-mgmt-net
octavia_management_subnet_name: lb-mgmt-subnet
octavia_management_subnet_cidr: "172.24.0.0/22"

# Octavia Amphora flavor
octavia_amphora_flavor_name: m1.amphora
octavia_amphora_flavor_vcpus: 2
octavia_amphora_flavor_ram: 2048
octavia_amphora_flavor_disk: 0
octavia_amphora_flavor_extra_specs: {}

# Octavia Amphora security group
octavia_amphora_security_group_name: lb-mgmt-sec-grp

# Octavia Amphora Image
octavia_amphora_image_name: amphora-x64-haproxy
octavia_amphora_image_url: https://tarballs.opendev.org/openstack/octavia/test-images/test-only-amphora-x64-haproxy-ubuntu-focal.qcow2
octavia_amphora_image_container_format: bare
octavia_amphora_image_disk_format: raw
octavia_amphora_image_tags:
  - amphora
