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

dea-base-config-metadata:
  title: 'Deployment Environment Adapter Base configuration'
  # DEA API version supported
  version: '0.3'
  created: 'Tue Feb 2 2016'
  comment: 'Rebased for Fuel 8'
environment:
  net_segment_type: tun
fuel:
  FUEL_ACCESS:
    password: admin
    user: admin
wanted_release: Liberty on Ubuntu 14.04
settings:
  editable:
    access:
      email:
        description: Email address for Administrator
        label: Email
        regex:
          error: Invalid email
          source: ^\S+@\S+$
        type: text
        value: admin@localhost
        weight: 40
      metadata:
        group: general
        label: Access
        weight: 10
      password:
        description: Password for Administrator
        label: Password
        regex:
          error: Empty password
          source: \S
        type: password
        value: admin
        weight: 20
      tenant:
        description: Tenant (project) name for Administrator
        label: Tenant
        regex:
          error: Invalid tenant name
          source: ^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?!ironic$)(?![Gg]uest$)(?!.*
            +.*$).+
        type: text
        value: admin
        weight: 30
      user:
        description: Username for Administrator
        label: Username
        regex:
          error: Invalid username
          source: ^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?!ironic$)(?![Gg]uest$)(?!.*
            +.*$).+
        type: text
        value: admin
        weight: 10
    additional_components:
      ceilometer:
        description: If selected, Ceilometer component will be installed
        label: Install Ceilometer
        type: checkbox
        value: true
        weight: 60
      heat:
        description: ''
        label: ''
        type: hidden
        value: true
        weight: 50
      ironic:
        description: If selected, Ironic component will be installed
        label: Install Ironic
        restrictions:
        - cluster:net_provider != 'neutron' or networking_parameters:segmentation_type != 'vlan': Ironic
            requires Neutron with VLAN segmentation.
        - settings:storage.images_ceph.value == true and settings:storage.objects_ceph.value == false: Ironic
            requires Swift or RadosGW for Glance images.
        type: checkbox
        value: false
        weight: 80
      metadata:
        group: openstack_services
        label: Additional Components
        weight: 20
      mongo:
        description: If selected, You can use external Mongo DB as ceilometer backend
        label: Use external Mongo DB
        restrictions:
        - settings:additional_components.ceilometer.value == false
        type: checkbox
        value: false
        weight: 70
      murano:
        description: If selected, Murano component will be installed
        label: Install Murano
        type: checkbox
        value: false
        weight: 20
      murano-cfapi:
        description: If selected, Murano service broker will be installed
        label: Install Murano service broker for Cloud Foundry
        restrictions:
        - condition: settings:additional_components.murano.value == false
          message: Murano should be enabled
        - action: hide
          condition: not ('experimental' in version:feature_groups)
        type: checkbox
        value: false
        weight: 30
      murano_glance_artifacts_plugin:
        description: If selected glance artifact repository will be enabled
        label: Enable glance artifact repository
        restrictions:
        - condition: settings:additional_components.murano.value == false
          message: Murano should be enabled
        - action: hide
          condition: not ('experimental' in version:feature_groups)
        type: checkbox
        value: false
        weight: 40
      sahara:
        description: If selected, Sahara component will be installed
        label: Install Sahara
        type: checkbox
        value: false
        weight: 10
    common:
      auth_key:
        description: Public key(s) to include in authorized_keys on deployed nodes
        group: security
        label: Public Key
        type: textarea
        value: ''
        weight: 70
      auto_assign_floating_ip:
        description: If selected, OpenStack will automatically assign a floating IP
          to a new instance
        group: network
        label: Auto assign floating IP
        restrictions:
        - action: hide
          condition: cluster:net_provider == 'neutron'
        type: checkbox
        value: false
        weight: 40
      debug:
        description: Debug logging mode provides more information, but requires more
          disk space.
        group: logging
        label: OpenStack debug logging
        type: checkbox
        value: true
        weight: 20
      libvirt_type:
        group: compute
        label: Hypervisor type
        type: radio
        value: kvm
        values:
        - data: kvm
          description: Choose this type of hypervisor if you run OpenStack on hardware
          label: KVM
        - data: qemu
          description: Choose this type of hypervisor if you run OpenStack on virtual
            hosts.
          label: QEMU
        weight: 30
      metadata:
        label: Common
        weight: 10
      nova_quota:
        description: Quotas are used to limit CPU and memory usage for tenants. Enabling
          quotas will increase load on the Nova database.
        group: compute
        label: Nova quotas
        type: checkbox
        value: false
        weight: 30
      puppet_debug:
        description: Debug puppet logging mode provides more information, but requires
          more disk space.
        group: logging
        label: Puppet debug logging
        type: checkbox
        value: true
        weight: 20
      resume_guests_state_on_host_boot:
        description: Whether to resume previous guests state when the host reboots.
          If enabled, this option causes guests assigned to the host to resume their
          previous state. If the guest was running a restart will be attempted when
          nova-compute starts. If the guest was not running previously, a restart
          will not be attempted.
        group: compute
        label: Resume guests state on host boot
        type: checkbox
        value: true
        weight: 50
      task_deploy:
        description: Enables new deployment engine based on cross-node dependencies
          for deployment tasks which allows to deploy all nodes simultaneously. Works
          only for deployment tasks with version >= 2.0.0.
        label: Enable task based deploy
        restrictions:
        - action: hide
          condition: not ('experimental' in version:feature_groups)
        type: checkbox
        value: false
        weight: 11
      use_cow_images:
        description: For most cases you will want qcow format. If it's disabled, raw
          image format will be used to run VMs. OpenStack with raw format currently
          does not support snapshotting.
        group: storage
        label: Use qcow format for images
        type: checkbox
        value: true
        weight: 60
      use_vcenter:
        type: hidden
        value: false
        weight: 30
    corosync:
      group:
        description: ''
        label: Group
        type: text
        value: 226.94.1.1
        weight: 10
      metadata:
        group: general
        label: Corosync
        restrictions:
        - action: hide
          condition: 'true'
        weight: 50
      port:
        description: ''
        label: Port
        type: text
        value: '12000'
        weight: 20
      verified:
        description: Set True only if multicast is configured correctly on router.
        label: Need to pass network verification.
        type: checkbox
        value: false
        weight: 10
    external_mongo:
      hosts_ip:
        description: IP Addresses of MongoDB. Use comma to split IPs
        label: MongoDB hosts IP
        regex:
          error: Invalid hosts ip sequence
          source: ^(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?),)*((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
        type: text
        value: ''
        weight: 30
      metadata:
        group: openstack_services
        label: External MongoDB
        restrictions:
        - action: hide
          condition: settings:additional_components.mongo.value == false
          message: Ceilometer and MongoDB are not enabled on the Additional Components
            section
        weight: 20
      mongo_db_name:
        description: Mongo database name
        label: Database name
        regex:
          error: Invalid database name
          source: ^\w+$
        type: text
        value: ceilometer
        weight: 30
      mongo_password:
        description: Mongo database password
        label: Password
        regex:
          error: Password contains spaces
          source: ^\S*$
        type: password
        value: ceilometer
        weight: 30
      mongo_replset:
        description: Name for Mongo replication set
        label: Replset
        type: text
        value: ''
        weight: 30
      mongo_user:
        description: Mongo database username
        label: Username
        regex:
          error: Empty username
          source: ^\w+$
        type: text
        value: ceilometer
        weight: 30
    kernel_params:
      kernel:
        description: Default kernel parameters
        label: Initial parameters
        type: text
        value: console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90 nomodeset
      metadata:
        group: general
        label: Kernel parameters
        weight: 60
    murano_settings:
      metadata:
        group: openstack_services
        label: Murano Settings
        restrictions:
        - action: hide
          condition: settings:additional_components.murano.value == false
          message: Murano is not enabled on the Additional Components section
        weight: 20
      murano_repo_url:
        description: ''
        label: Murano Repository URL
        type: text
        value: http://storage.apps.openstack.org/
        weight: 10
    neutron_advanced_configuration:
      metadata:
        group: network
        label: Neutron Advanced Configuration
        restrictions:
        - action: hide
          condition: cluster:net_provider != 'neutron'
        weight: 20
      neutron_dvr:
        description: Enable Distributed Virtual Routers in Neutron
        label: Neutron DVR
        restrictions:
        - ? networking_parameters:segmentation_type != 'vlan' and settings:neutron_advanced_configuration.neutron_l2_pop.value
            == false
          : DVR requires L2 population to be enabled.
        type: checkbox
        value: false
        weight: 20
      neutron_l2_pop:
        description: Enable L2 population mechanism in Neutron
        label: Neutron L2 population
        restrictions:
        - action: hide
          condition: networking_parameters:segmentation_type == 'vlan'
        type: checkbox
        value: false
        weight: 10
      neutron_l3_ha:
        description: 'Enable High Availability features for Virtual Routers in Neutron

          Requires at least 2 Controller nodes to function properly

          '
        label: Neutron L3 HA
        restrictions:
        - condition: settings:neutron_advanced_configuration.neutron_dvr.value ==
            true
          message: Neutron DVR must be disabled in order to use Neutron L3 HA
        type: checkbox
        value: false
        weight: 30
    neutron_mellanox:
      metadata:
        enabled: true
        group: network
        label: Mellanox Neutron components
        restrictions:
        - action: hide
          condition: not ('experimental' in version:feature_groups)
        toggleable: false
        weight: 50
      plugin:
        label: Mellanox drivers and SR-IOV plugin
        type: radio
        value: disabled
        values:
        - data: disabled
          description: If selected, Mellanox drivers, Neutron and Cinder plugin will
            not be installed.
          label: Mellanox drivers and plugins disabled
          restrictions:
          - settings:storage.iser.value == true
        - data: drivers_only
          description: If selected, Mellanox Ethernet drivers will be installed to
            support networking over Mellanox NIC. Mellanox Neutron plugin will not
            be installed.
          label: Install only Mellanox drivers
          restrictions:
          - settings:common.libvirt_type.value != 'kvm'
        - data: ethernet
          description: If selected, both Mellanox Ethernet drivers and Mellanox network
            acceleration (Neutron) plugin will be installed.
          label: Install Mellanox drivers and SR-IOV plugin
          restrictions:
          - settings:common.libvirt_type.value != 'kvm' or not (cluster:net_provider
            == 'neutron' and networking_parameters:segmentation_type == 'vlan')
        weight: 60
      vf_num:
        description: Note that one virtual function will be reserved to the storage
          network, in case of choosing iSER.
        label: Number of virtual NICs
        restrictions:
        - settings:neutron_mellanox.plugin.value != 'ethernet'
        type: text
        value: '16'
        weight: 70
    provision:
      metadata:
        group: general
        label: Provision
        restrictions:
        - action: hide
          condition: 'true'
        weight: 80
      method:
        type: hidden
        value: image
    public_network_assignment:
      assign_to_all_nodes:
        description: When disabled, public network will be assigned to controllers
          only
        label: Assign public network to all nodes
        type: checkbox
        value: true
        weight: 10
      metadata:
        group: network
        label: Public network assignment
        restrictions:
        - action: hide
          condition: cluster:net_provider != 'neutron'
        weight: 10
    public_ssl:
      cert_data:
        description: Certificate and private key data, concatenated into a single
          file
        label: Certificate
        restrictions:
        - action: hide
          condition: (settings:public_ssl.cert_source.value != 'user_uploaded') or
            (settings:public_ssl.horizon.value == false and settings:public_ssl.services.value
            == false)
        type: file
        value: ''
        weight: 40
      cert_source:
        description: From where we'll get certificate and private key
        label: Select source for certificate
        restrictions:
        - action: hide
          condition: settings:public_ssl.horizon.value == false and settings:public_ssl.services.value
            == false
        type: radio
        value: self_signed
        values:
        - data: self_signed
          description: Generate private key and certificate that will be signed by
            this key
          label: Self-signed
        - data: user_uploaded
          description: Use pre-generated key and certificate
          label: I have my own keypair with certificate
        weight: 30
      horizon:
        description: Secure access to Horizon enabling HTTPS instead of HTTP
        label: HTTPS for Horizon
        type: checkbox
        value: false
        weight: 10
      hostname:
        description: Your DNS entries should point to this name. Self-signed certificates
          also will use this hostname
        label: DNS hostname for public TLS endpoints
        restrictions:
        - action: hide
          condition: settings:public_ssl.horizon.value == false and settings:public_ssl.services.value
            == false
        type: text
        value: public.fuel.local
        weight: 50
      metadata:
        group: security
        label: Public TLS
        weight: 110
      services:
        description: Enable TLS termination on HAProxy for OpenStack services
        label: TLS for OpenStack public endpoints
        type: checkbox
        value: false
        weight: 20
    repo_setup:
      metadata:
        always_editable: true
        group: general
        label: Repositories
        weight: 50
      repos:
        description: 'Please note: the first repository will be considered the operating
          system mirror that will be used during node provisioning.

          To create a local repository mirror on the Fuel master node, please follow
          the instructions provided by running "fuel-createmirror --help" on the Fuel
          master node.

          Please make sure your Fuel master node has Internet access to the repository
          before attempting to create a mirror.

          For more details, please refer to the documentation (https://docs.mirantis.com/openstack/fuel/fuel-8.0/operations.html#external-ubuntu-ops).

          '
        extra_priority: null
        type: custom_repo_configuration
        value:
        - name: ubuntu
          priority: null
          section: main universe multiverse
          suite: trusty
          type: deb
          uri: http://10.20.0.2:8080/mirrors/ubuntu/
        - name: ubuntu-updates
          priority: null
          section: main universe multiverse
          suite: trusty-updates
          type: deb
          uri: http://10.20.0.2:8080/mirrors/ubuntu/
        - name: ubuntu-security
          priority: null
          section: main universe multiverse
          suite: trusty-security
          type: deb
          uri: http://10.20.0.2:8080/mirrors/ubuntu/
        - name: mos
          priority: 1050
          section: main restricted
          suite: mos8.0
          type: deb
          uri: http://10.20.0.2:8080/liberty-8.0/ubuntu/x86_64
        - name: Auxiliary
          priority: 1150
          section: main restricted
          suite: auxiliary
          type: deb
          uri: http://10.20.0.2:8080/liberty-8.0/ubuntu/auxiliary
    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: true
        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
    workloads_collector:
      enabled:
        type: hidden
        value: true
      metadata:
        group: general
        label: Workloads Collector User
        restrictions:
        - action: hide
          condition: 'true'
        weight: 10
      password:
        type: password
        value: AqEF1Aid1T5vGhP2WE7K5Yxx
      tenant:
        type: text
        value: services
      user:
        type: text
        value: fuel_stats_user