# Copyright 2017 The Openstack-Helm Authors.
#
# 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.

# Default values for nova.
# This is a YAML-formatted file.
# Declare name/value pairs to be passed into your templates.
# name: value

replicas:
  api_metadata: 1
  osapi: 1
  conductor: 1
  consoleauth: 1
  scheduler: 1

labels:
  agent:
    compute:
      node_selector_key: openstack-compute-node
      node_selector_value: enabled
    libvirt:
      node_selector_key: openstack-compute-node
      node_selector_value: enabled
  conductor:
    node_selector_key: openstack-control-plane
    node_selector_value: enabled
  consoleauth:
    node_selector_key: openstack-control-plane
    node_selector_value: enabled
  scheduler:
    node_selector_key: openstack-control-plane
    node_selector_value: enabled
  osapi:
    node_selector_key: openstack-control-plane
    node_selector_value: enabled
  api_metadata:
    node_selector_key: openstack-control-plane
    node_selector_value: enabled
  job:
    node_selector_key: openstack-control-plane
    node_selector_value: enabled

images:
  db_init: docker.io/kolla/ubuntu-source-nova-api:3.0.3
  db_sync: docker.io/kolla/ubuntu-source-nova-api:3.0.3
  ks_user: docker.io/kolla/ubuntu-source-kolla-toolbox:3.0.3
  ks_service: docker.io/kolla/ubuntu-source-kolla-toolbox:3.0.3
  ks_endpoints: docker.io/kolla/ubuntu-source-kolla-toolbox:3.0.3
  api: docker.io/kolla/ubuntu-source-nova-api:3.0.3
  conductor: docker.io/kolla/ubuntu-source-nova-conductor:3.0.3
  scheduler: docker.io/kolla/ubuntu-source-nova-scheduler:3.0.3
  novncproxy: docker.io/kolla/ubuntu-source-nova-novncproxy:3.0.3
  consoleauth: docker.io/kolla/ubuntu-source-nova-consoleauth:3.0.3
  compute: docker.io/kolla/ubuntu-source-nova-compute:3.0.3
  libvirt: docker.io/kolla/ubuntu-source-nova-libvirt:3.0.3
  bootstrap: docker.io/kolla/ubuntu-source-nova-api:3.0.3
  dep_check: docker.io/kolla/ubuntu-source-kubernetes-entrypoint:4.0.0
  pull_policy: "IfNotPresent"

upgrades:
  revision_history: 3
  pod_replacement_strategy: RollingUpdate
  rolling_update:
    max_unavailable: 1
    max_surge: 3

pod_disruption_budget:
  metadata:
    min_available: 0
  osapi:
    min_available: 0

bootstrap:
  enabled: true
  flavors:
    m1_tiny:
        name: "m1.tiny"
        id: "auto"
        ram: 512
        disk: 20
        vcpus: 1

network:
  dns:
    servers:
      - "10.96.0.10"
      - "8.8.8.8"
    kubernetes_domain: "cluster.local"
    other_domains: ""
  osapi:
    name: "nova-osapi"
    port: 8774
    node_port:
      enabled: false
      port: 30774
  metadata:
    name: "nova-metadata"
    port: 8775
    node_port:
      enabled: false
      port: 30775
  novncproxy:
    name: "nova-novncproxy"
    port: 6080

keystone:
  admin_user: "admin"
  admin_user_domain: "default"
  admin_password: "password"
  admin_project_name: "admin"
  admin_project_domain: "default"
  admin_region_name: "RegionOne"
  nova_user_role: "admin"


ceph:
  enabled: false
  monitors: []
  cinder_user: "cinder"
  cinder_keyring: null
  nova_pool: "vms"
  secret_uuid: ""

libvirt:
  listen_addr: 0.0.0.0

dependencies:
  api:
    jobs:
    - nova-db-sync
    - nova-ks-user
    - nova-ks-endpoints
    service:
    - mariadb
  db_init:
    service:
    - mariadb
  db_sync:
    jobs:
    - nova-db-init
    service:
    - mariadb
  bootstrap:
    service:
    - keystone-api
    - nova-api
  ks_user:
    service:
    - keystone-api
  ks_service:
    service:
    - keystone-api
  ks_endpoints:
    jobs:
    - nova-ks-service
    service:
    - keystone-api
  compute:
    jobs:
    - nova-db-sync
    service:
    - keystone-api
    - nova-api
    daemonset:
    - ovs-agent
  libvirt:
    jobs:
    - nova-db-sync
    service:
    - keystone-api
    - nova-api
  consoleauth:
    jobs:
    - nova-db-sync
    service:
    - mariadb
  scheduler:
    jobs:
    - nova-db-sync
    service:
    - mariadb
  conductor:
    jobs:
    - nova-db-sync
    service:
    - mariadb

mounts:
  nova_compute:
    init_container: null
    nova_compute:
  nova_libvirt:
    init_container: null
    nova_libvirt:
  nova_api_metadata:
    init_container: null
    nova_api_metadata:
  nova_api_osapi:
    init_container: null
    nova_api_osapi:
  nova_consoleauth:
    init_container: null
    nova_consoleauth:
  nova_conductor:
    init_container: null
    nova_conductor:
  nova_scheduler:
    init_container: null
    nova_scheduler:
  nova_bootstrap:
    init_container: null
    nova_bootstrap:

conf:
  paste:
    override:
    append:
  policy:
    override:
    append:
  nova:
    override:
    append:
    default:
      nova:
        conf:
          default_ephemeral_format: ext4
          ram_allocation_ratio: 1.0
          disk_allocation_ratio: 1.0
          cpu_allocation_ratio: 3.0
          force_config_drive: true
          state_path: /var/lib/nova
          osapi_compute_listen: 0.0.0.0
          osapi_compute_listen_port: 8774
          osapi_compute_workers: 1
          metadata_workers: 1
          use_neutron: true
          firewall_driver: nova.virt.firewall.NoopFirewallDriver
          linuxnet_interface_driver: openvswitch
          allow_resize_to_same_host: true
          compute_driver: libvirt.LibvirtDriver
          my_ip: 0.0.0.0
    vnc:
      nova:
        conf:
          novncproxy_host: 0.0.0.0
          novncproxy_port: 6080
          vncserver_listen: 0.0.0.0
          vncserver_proxyclient_address: 0.0.0.0
          # FIXME(ALANMEADOWS)
          novncproxy_base_url: http://0.0.0.0:6080/no_vnc.html
    conductor:
      nova:
        conf:
          workers: 1
    oslo_policy:
      oslo:
        policy:
          policy_file: policy.yaml
    oslo_concurrency:
      oslo:
        concurrency:
          lock_path: /var/lib/nova/tmp
    glance:
      nova:
        conf:
          num_retries: 3
    cinder:
      nova:
        conf:
          catalog_info: volumev2:cinder:internalURL
    neutron:
      nova:
        conf:
          metadata_proxy_shared_secret: "password"
          service_metadata_proxy: True
          auth_type: password
          auth_version: v3
          region_name: RegionOne
          project_name: service
          project_domain_name: default
          user_domain_name: default
          username: neutron
          password: password
    database:
      oslo:
        db:
          max_retries: -1
    api_database:
      oslo:
        db:
          max_retries: -1
    keystone_authtoken:
      keystonemiddleware:
        auth_token:
          auth_type: password
          auth_version: v3
          region_name: RegionOne
          project_name: service
          project_domain_name: default
          user_domain_name: default
          username: nova
          password: password

    libvirt:
      nova:
        conf:
          connection_uri: "qemu+tcp://127.0.0.1/system"
          images_type: qcow2
          images_rbd_pool: vms
          images_rbd_ceph_conf: /etc/ceph/ceph.conf
          rbd_user: cinder
          rbd_secret_uuid: null
          disk_cachemodes: "network=writeback"
          hw_disk_discard: unmap
    upgrade_levels:
      nova:
        conf:
          compute: auto
    cache:
      nova:
        conf:
          enabled: true
          backend: oslo_cache.memcache_pool
    wsgi:
      nova:
        conf:
          api_paste_config: /etc/nova/api-paste.ini


# typically overriden by environmental
# values, but should include all endpoints
# required by this chart
endpoints:
  oslo_db:
    auth:
      admin:
        username: root
        password: password
      user:
        username: nova
        password: password
    hosts:
      default: mariadb
    path: /nova
    scheme: mysql+pymysql
    port:
      mysql: 3306
  oslo_db_api:
    auth:
      admin:
        username: root
        password: password
      user:
        username: nova
        password: password
    hosts:
      default: mariadb
    path: /nova_api
    scheme: mysql+pymysql
    port:
      mysql: 3306
  oslo_messaging:
    auth:
      admin:
        username: admin
        password: password
      user:
        username: rabbitmq
        password: password
    hosts:
      default: rabbitmq
    path: /
    scheme: rabbit
    port:
      amqp: 5672
  oslo_cache:
    hosts:
      default: memcache
    port:
      memcache: 11211
  compute:
    name: nova
    hosts:
      default: nova-api
    path: "/v2/%(tenant_id)s"
    scheme: 'http'
    port:
      api: 8774
      metadata: 8775
      novncproxy: 6080
  identity:
    name: keystone
    hosts:
      default: keystone-api
    path: /v3
    scheme: 'http'
    port:
      api: 5000
      admin: 35357
  image:
    name: glance
    hosts:
      default: glance-api
    path: null
    scheme: 'http'
    port:
      api: 9292
      registry: 9191
  network:
    name: neutron
    hosts:
      default: neutron-server
    path: null
    scheme: 'http'
    port:
      api: 9696


resources:
  enabled: false
  nova_compute:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  nova_libvirt:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  nova_api_metadata:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  nova_osapi:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  nova_conductor:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  nova_consoleauth:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  nova_scheduler:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  nova_db_sync:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  nova_init:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  nova_post:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"
  bootstrap:
    requests:
      memory: "124Mi"
      cpu: "100m"
    limits:
      memory: "1024Mi"
      cpu: "2000m"