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

_nova_helm_values:
  endpoints: "{{ openstack_helm_endpoints }}"
  labels:
    agent:
      compute_ironic:
        node_selector_key: openstack-control-plane
        node_selector_value: enabled
  images:
    tags: "{{ atmosphere_images | vexxhost.atmosphere.openstack_helm_image_tags('nova') }}"
  network:
    ssh:
      enabled: true
      public_key: "{{ _nova_ssh_publickey.public_key }}"
      private_key: "{{ nova_ssh_key }}"
  bootstrap:
    structured:
      flavors:
        enabled: false
  pod:
    replicas:
      api_metadata: 3
      osapi: 3
      conductor: 3
      scheduler: 3
      novncproxy: 3
      spiceproxy: 3
  conf:
    ceph:
      enabled: "{{ atmosphere_ceph_enabled | default(true) | bool }}"
    paste:
      composite:openstack_compute_api_v21:
        keystone: cors http_proxy_to_wsgi compute_req_id faultwrap sizelimit authtoken keystonecontext osapi_compute_app_v21
      composite:openstack_compute_api_v21_legacy_v2_compatible:
        keystone: cors http_proxy_to_wsgi compute_req_id faultwrap sizelimit authtoken keystonecontext legacy_v2_compatible osapi_compute_app_v21
    nova:
      DEFAULT:
        allow_resize_to_same_host: true
        cpu_allocation_ratio: 4.5
        ram_allocation_ratio: 0.9
        disk_allocation_ratio: 3.0
        resume_guests_state_on_host_boot: true
        osapi_compute_workers: 8
        metadata_workers: 8
      cache:
        backend: oslo_cache.memcache_pool
      cinder:
        catalog_info: volumev3::internalURL
      conductor:
        workers: 8
      compute:
        consecutive_build_service_disable_threshold: 0
      cors:
        allowed_origin: "*"
        allow_headers: "X-Auth-Token,X-OpenStack-Nova-API-Version"
      filter_scheduler:
        enabled_filters:
          AvailabilityZoneFilter,
          ComputeFilter,
          AggregateTypeAffinityFilter,
          ComputeCapabilitiesFilter,
          PciPassthroughFilter,
          ImagePropertiesFilter,
          ServerGroupAntiAffinityFilter,
          ServerGroupAffinityFilter
        image_properties_default_architecture: x86_64
        max_instances_per_host: 200
      glance:
        enable_rbd_download: true
      libvirt:
        volume_use_multipath: true
      neutron:
        metadata_proxy_shared_secret: "{{ openstack_helm_endpoints['compute_metadata']['secret'] }}"
      oslo_messaging_notifications:
        driver: noop
      scheduler:
        workers: 8
    nova_ironic:
      DEFAULT:
        log_config_append: null
        force_config_drive: true
  manifests:
    deployment_consoleauth: false
    deployment_placement: false
    ingress_metadata: false
    ingress_novncproxy: false
    ingress_osapi: false
    ingress_placement: false
    job_db_init_placement: false
    job_ks_placement_endpoints: false
    job_ks_placement_service: false
    job_ks_placement_user: false
    secret_keystone_placement: false
    service_ingress_metadata: false
    service_ingress_novncproxy: false
    service_ingress_osapi: false
    service_ingress_placement: false
    service_placement: false
    # NOTE(mnaser): Enable this once we've got Ironic deployed.
    statefulset_compute_ironic: false
