# 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 }}"
    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
      barbican:
        barbican_endpoint_type: internal
      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
      keystone_authtoken:
        # NOTE(okozachenko1203): We can remove it once the following is merged:
        #                        https://review.opendev.org/883066
        service_type: compute
      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
