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

_magnum_helm_values:
  endpoints: "{{ openstack_helm_endpoints }}"
  images:
    tags: "{{ atmosphere_images | vexxhost.atmosphere.openstack_helm_image_tags('magnum') }}"
  conf:
    magnum:
      DEFAULT:
        log_config_append: null
      api:
        workers: 4
      barbican_client:
        endpoint_type: internalURL
        region_name: "{{ openstack_helm_endpoints_barbican_region_name }}"
      capi_client:
        ca_file: /etc/ssl/certs/ca-certificates.crt
      cinder_client:
        endpoint_type: internalURL
        region_name: "{{ openstack_helm_endpoints_cinder_region_name }}"
      cluster_template:
        kubernetes_allowed_network_drivers: calico
        kubernetes_default_network_driver: calico
      conductor:
        workers: 4
      database:
        connection_recycle_time: 600
        max_overflow: 50
        max_pool_size: 5
        pool_timeout: 30
      drivers:
        verify_ca: false
      glance_client:
        endpoint_type: internalURL
        region_name: "{{ openstack_helm_endpoints_glance_region_name }}"
      heat_client:
        endpoint_type: internalURL
        region_name: "{{ openstack_helm_endpoints_heat_region_name }}"
      keystone_auth:
        auth_url: http://keystone-api.openstack.svc.cluster.local:5000/v3
        user_domain_name: service
        username: "magnum-{{ openstack_helm_endpoints_magnum_region_name }}"
        password: "{{ openstack_helm_endpoints_magnum_keystone_password }}"
        # NOTE(mnaser): Magnum does not allow changing the interface to internal
        #               so we workaround with this for now.
        insecure: true
      keystone_authtoken:
        # NOTE(mnaser): Magnum does not allow changing the interface to internal
        #               so we workaround with this for now.
        insecure: true
      magnum_client:
        region_name: "{{ openstack_helm_endpoints_magnum_region_name }}"
      manila_client:
        endpoint_type: internalURL
        region_name: "{{ openstack_helm_endpoints_manila_region_name }}"
      neutron_client:
        endpoint_type: internalURL
        region_name: "{{ openstack_helm_endpoints_neutron_region_name }}"
      nova_client:
        api_version: 2.15
        endpoint_type: internalURL
        region_name: "{{ openstack_helm_endpoints_nova_region_name }}"
      octavia_client:
        endpoint_type: internalURL
        region_name: "{{ openstack_helm_endpoints_octavia_region_name }}"
  pod:
    replicas:
      api: 3
      conductor: 3
    mounts:
      magnum_conductor:
        magnum_conductor:
          volumeMounts:
            - name: ca-certificates
              mountPath: /etc/ssl/certs/ca-certificates.crt
              readOnly: true
          volumes:
            - name: ca-certificates
              hostPath:
                path: "{{ defaults_ca_certificates_path }}"
  manifests:
    ingress_api: false
    service_ingress_api: false

_magnum_registry_ingress_annotations: {}

_magnum_images:
  - name: ubuntu-2204-kube-v1.29.6
    url: https://static.atmosphere.dev/artifacts/magnum-cluster-api/ubuntu-jammy-kubernetes-1-29-6-1720107687.qcow2
    distro: ubuntu
  - name: ubuntu-2204-kube-v1.30.2
    url: https://static.atmosphere.dev/artifacts/magnum-cluster-api/ubuntu-jammy-kubernetes-1-30-2-1720107688.qcow2
    distro: ubuntu
  - name: ubuntu-2204-kube-v1.31.1
    url: https://static.atmosphere.dev/artifacts/magnum-cluster-api/ubuntu-jammy-kubernetes-1-31-1-1728920853.qcow2
    distro: ubuntu
