##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
# jonas.bjurel@ericsson.com
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

############################################################################### # Description:
# This .yaml configuration file defines the configuration of the fuel
# deployment and is passed as an argument to deploy.sh
# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config
# This will make build.sh fetch this configuration file and configure the
# deployment accordingly.
# After the deployment, a copy of this file gets uploaded to fuel:
# /root/deploy-config.yaml, as well as the sha-1 sum of this file:
# /root/deploy-config.sha1
##############################################################################

##############################################################################
# deployment configuration meta-data
deployment-scenario-metadata:
   title: NFV KVM HA deployment
   version: 0.0.4
   created: Feb 9 2016
   comment: Rebased to Fuel8 and the new KVM QEMU plugin verssion

##############################################################################
# Stack extentions are opnfv added value features in form of a fuel-plugin
# plug-ins listed below will be enabled and configured according to the
# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml
# It does so by copying the config file to the local plugin config directory
stack-extensions:
   - module: fuel-plugin-qemu
     module-config-name: fuel-nfvkvm
     module-config-version: 0.0.2
     module-config-override:
       # Module config overrides

##############################################################################
# By editing the override-config sections below, you can override arbitrary
# configuration name-space settings
dea-override-config:
  environment:
    net_segment_type: tun
  nodes:
  - id: 1
    interfaces: interfaces_1
    role: mongo,controller
    transformations: transformations_1
  - id: 2
    interfaces: interfaces_1
    role: controller
    transformations: transformations_1
  - id: 3
    interfaces: interfaces_1
    role: controller
    transformations: transformations_1
  - id: 4
    interfaces: interfaces_1
    role: compute
    transformations: transformations_1
  - id: 5
    interfaces: interfaces_1
    role: compute
    transformations: transformations_1

  settings:
    editable:
      storage:
        ephemeral_ceph:
          description: Configures Nova to store ephemeral volumes in RBD. This works best if Ceph is enabled for volumes and images, too. Enables live migration of all types of Ceph backed VMs (without this option, live migration will only work with VMs launched from Cinder volumes).
          label: Ceph RBD for ephemeral volumes (Nova)
          type: checkbox
          value: false
          weight: 75
        images_ceph:
          description: Configures Glance to use the Ceph RBD backend to store images. If enabled, this option will prevent Swift from installing.
          label: Ceph RBD for images (Glance)
          restrictions:
          - settings:storage.images_vcenter.value == true: Only one Glance backend could be selected.
          type: checkbox
          value: false
          weight: 30
        images_vcenter:
          description: Configures Glance to use the vCenter/ESXi backend to store images. If enabled, this option will prevent Swift from installing.
          label: VMware vCenter/ESXi datastore for images (Glance)
          restrictions:
          - action: hide
            condition: settings:common.use_vcenter.value != true
          - condition: settings:storage.images_ceph.value == true
            message: Only one Glance backend could be selected.
          type: checkbox
          value: false
          weight: 35
        iser:
          description: 'High performance block storage: Cinder volumes over iSER protocol (iSCSI over RDMA). This feature requires SR-IOV capabilities in the NIC, and will use a dedicated virtual function for the storage network.'
          label: iSER protocol for volumes (Cinder)
          restrictions:
          - settings:storage.volumes_lvm.value != true or settings:common.libvirt_type.value != 'kvm'
          - action: hide
            condition: not ('experimental' in version:feature_groups)
          type: checkbox
          value: false
          weight: 11
        metadata:
          group: storage
          label: Storage Backends
          weight: 60
        objects_ceph:
          description: Configures RadosGW front end for Ceph RBD. This exposes S3 and Swift API Interfaces. If enabled, this option will prevent Swift from installing.
          label: Ceph RadosGW for objects (Swift API)
          type: checkbox
          value: false
          weight: 80
        osd_pool_size:
          description: Configures the default number of object replicas in Ceph. This number must be equal to or lower than the number of deployed 'Storage - Ceph OSD' nodes.
          label: Ceph object replication factor
          regex:
            error: Invalid number
            source: ^[1-9]\d*$
          type: text
          value: '3'
          weight: 85
        volumes_block_device:
          description: High performance block device storage. It is recommended to have at least one Storage - Cinder Block Device
          label: Cinder Block device driver
          restrictions:
          - settings:storage.volumes_ceph.value == true
          type: checkbox
          value: false
          weight: 15
        volumes_ceph:
          description: Configures Cinder to store volumes in Ceph RBD images.
          label: Ceph RBD for volumes (Cinder)
          restrictions:
          - settings:storage.volumes_lvm.value == true or settings:storage.volumes_block_device.value == true
          type: checkbox
          value: false
          weight: 20
        volumes_lvm:
          description: It is recommended to have at least one Storage - Cinder LVM node.
          label: Cinder LVM over iSCSI for volumes
          restrictions:
          - settings:storage.volumes_ceph.value == true
          type: checkbox
          value: false
          weight: 10

dha-override-config:
  nodes:
  - id: 1
    libvirtName: controller1
    libvirtTemplate: templates/virtual_environment/vms/controller.xml
  - id: 2
    libvirtName: controller2
    libvirtTemplate: templates/virtual_environment/vms/controller.xml
  - id: 3
    libvirtName: controller3
    libvirtTemplate: templates/virtual_environment/vms/controller.xml
  - id: 4
    libvirtName: compute1
    libvirtTemplate: templates/virtual_environment/vms/compute.xml
  - id: 5
    libvirtName: compute2
    libvirtTemplate: templates/virtual_environment/vms/compute.xml
  - id: 6
    libvirtName: fuel-master
    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
    isFuel: yes
    username: root
    password: r00tme


##############################################################################
# The verification pipeline may populate the section below with arbitrary
# testing information, which post deploy can be retreived from the fuel master:
# /root/deploy-config.yaml
test: