A simple method to separate configuration for base fuel, plugins, PODs 57/5357/10
authorJonas Bjurel <jonas.bjurel@ericsson.com>
Tue, 29 Dec 2015 21:16:57 +0000 (22:16 +0100)
committerJonas Bjurel <jonas.bjurel@ericsson.com>
Fri, 8 Jan 2016 12:36:56 +0000 (13:36 +0100)
and deployment/test scenarios

READY TO MERGE!

Replaces: https://gerrit.opnfv.org/gerrit/#/c/3995/

Abstract
--------
This deployment framework relies on a configuration structure,
providing base installer configuration, per POD specific configuration,
plugin configuration, and deployment scenario configuration.
- The base installer configuration resembles the least common denominator
  of all HW/POD environment and deployment scenarios (These configurations
  are normally carried by the the installer projects in this case (fuel@OPNFV).
- Per POD specific configuration specifies POD unique parameters, the POD
  parameter possible to alter is governed by the Fuel@OPNFV project.
- Plugin configuration - providing configuration of a specific plugin.
  these configurations maintain there own namespace and are normally maintained
  by collaborative projects building Fuel@OPNFV plugins
- Deployment scenario configuration - provides a high level, POD/HW environment
  independent scenario configuration for a specific deployment. It defines what
  features/plugins that shall be deployed - as well needed overrides of the
  plugin config as well as the base installer-, POD/HW environment-
  configurations. Objects allowed to override
  is governed by the Fuel@OPNFV project.

Executing a deployment
----------------------
deploy.sh must be executed locally at the target lab/pod/jumpserver
A lab configuration structure must be provided - see the section below.
It is straight forward to execute a deployment task - as an example:
sudo deploy.sh -b file:///home/jenkins/config -l ericsson-1 -p pod-2
-s os_odl-l2_no-ha -i file:///home/jenkins/MyIso.iso

-b and -i arguments should be expressed in URI style. The resources can thus be
local or remote.

Feedback
--------
Please give feed-back before I'm going to far on a wrong tangent

Implemented scenarios so far:
-----------------------------
- os_ha
- os_no-ha
- os_odl-l3_ha
- os_odl-l3_no-ha
- os_odl-l2_ha
- os_odl-l2_no-ha
- os_onos_ha
- os_onos_no-ha
- os_kvm_ha
- os_kvm_no-ha
- os_ovs_ha
- os_ovs_no-ha
- os_kvm_ovs_ha
- os_kvm_ovs_no-ha

VERIFIED
READY TO MERGE

JIRA: FUEL-35

Change-Id: I94a9b477d8ed4ee8057c16d8f20fe543f7ecc20d
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
30 files changed:
ci/README
ci/deploy.sh
deploy/cloud/configure_nodes.py
deploy/cloud/configure_settings.py
deploy/common.py
deploy/config/dea_base.yaml [new file with mode: 0644]
deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml [new file with mode: 0644]
deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml [new file with mode: 0644]
deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml [new file with mode: 0644]
deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml [new file with mode: 0644]
deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml [new file with mode: 0644]
deploy/config/plugins/fuel-nfvovs_0.0.1.yaml [new file with mode: 0644]
deploy/config/plugins/fuel-odl_0.0.1.yaml [new file with mode: 0644]
deploy/config/plugins/fuel-onos_0.0.1.yaml [new file with mode: 0644]
deploy/deploy-config.py [new file with mode: 0644]
deploy/scenario/README [new file with mode: 0644]
deploy/scenario/ha_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/ha_onos_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/no-ha_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml [new file with mode: 0644]
deploy/scenario/scenario.yaml [new file with mode: 0644]

index aab823b..46698a7 100644 (file)
--- a/ci/README
+++ b/ci/README
@@ -8,99 +8,94 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
-The genesis/fuel/ci directory holds all Fuel@OPNFV abstractions for the OPNFV
-community release and continous integration pipeline.
+Abstract
+========
+The fuel/ci directory holds all Fuel@OPNFV programatic abstractions for
+the OPNFV community release and continous integration pipeline.
 There are two Fuel@OPNF autonomous scripts fo this, complying to the OPNFV CI pipeline guideline:
  - build.sh
  - deploy.sh
 
-For more info on usage:
+USAGE
+=====
+For usage information of the CI/CD scripts, please run:
 ./build.sh -h
-sudo ./deploy.sh -h
-python deploy.py -h
-
-usage: python deploy.py [-h] [-nf] [-nh] [-fo] [-co] [-c] [-iso [ISO_FILE]]
-                        [-dea [DEA_FILE]] [-dha [DHA_FILE]] [-s STORAGE_DIR]
-                        [-b PXE_BRIDGE] [-p FUEL_PLUGINS_DIR]
-
-optional arguments:
-  -h, --help           show this help message and exit
-  -nf                  Do not install Fuel Master (and Node VMs when using
-                       libvirt)
-  -nh                  Don't run health check after deployment
-  -fo                  Install Fuel Master only (and Node VMs when using
-                       libvirt)
-  -co                  Cleanup VMs and Virtual Networks according to what is
-                       defined in DHA
-  -c                   Cleanup after deploy
-  -iso [ISO_FILE]      ISO File [default: OPNFV.iso]
-  -dea [DEA_FILE]      Deployment Environment Adapter: dea.yaml
-  -dha [DHA_FILE]      Deployment Hardware Adapter: dha.yaml
-  -s STORAGE_DIR       Storage Directory [default: images]
-  -b PXE_BRIDGE        Linux Bridge for booting up the Fuel Master VM
-                       [default: pxebr]
-  -p FUEL_PLUGINS_DIR  Fuel Plugins directory
-
-
-
-* EXAMPLES:
-
-- Install Fuel Master and deploy OPNFV Cloud from scratch on Hardware Environment:
-
-    sudo ./deploy.sh -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr
-
-
-- Install Fuel Master and deploy OPNFV Cloud from scratch on Virtual Environment:
-
-    sudo ./deploy.sh -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images
-
-
-- Deploy OPNFV Cloud on an already active Environment where Fuel Master VM is running so no need to install Fuel again:
-
-    sudo ./deploy.sh -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml
-
-    => with plugin installation
-    sudo ./deploy.sh -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml
-
-    => with cleanup after deployment is finished
-    sudo ./deploy.sh -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -c
-
-    => no healthcheck after deployment is completed
-    sudo ./deploy.sh -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -nh
-
-
-- Install Fuel Master only (and Node VMs when using virtual environment):
-
-    => for virtual environment:
-    sudo ./deploy.sh -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images
-
-    => for hardware environment:
-    sudo ./deploy.sh -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr
-
-
-- Cleanup a running OPNFV environment:
-
-    sudo ./deploy.sh -co -dha ~/CONF/virtual/dha.yaml
-
-
-* WARNINGS:
-
-=>  If optional argument -s <storage_dir> is not specified, Autodeployment will use
-"<current_working_dir>/images" as default, and it will create it, if it hasn't been created before
-
-=>  If optional argument -b <pxe_bridge> is not specified, Autodeployment will use "pxebr" as default,
-if the bridge does not exist, the application will terminate with an error message
-
-=>  If argument -iso [ISO_FILE] is not specified, Autodeployment will use "<current_working_dir>/OPNFV.iso"
-as default, if the iso file does not exist, the application will terminate with an error message
-
-=>  If argument -dea [DEA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dea.yaml"
-as default, if DEA file does not exist, the application will terminate with an error message
-
-=>  If argument -dha [DHA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dha.yaml"
-as default, if DHA file does not exist, the application will terminate with an error message
-
-=> Optional argument -b PXE_BRIDGE is not required for Autodeployment in virtual environment,
-   even if it is specified it will not be used at all because virtual environment is using a different virtual network setup
-
-=> If optional argument -p FUEL_PLUGINS_DIR is not specified, no external plugins will be installed in Fuel
\ No newline at end of file
+./deploy.sh -h
+
+Details on the CI/CD deployment framework
+=========================================
+
+Overview and purpose
+--------------------
+The CI/CD deployment script relies on a configuration structure, providing base
+installer configuration (part of fuel repo: deploy/config), per POD specific
+configuration (part of a separate classified POD configuration repo: securedlab
+, plugin configuration (part of fuel repo: deploy/config/plugins), and
+deployment scenario configuration (part of fuel repo: deploy/scenario).
+
+- The base installer configuration resembles the least common denominator of all
+  HW/POD environment and deployment scenarios (These configurations are
+  normally carried by the the installer projects in this case (fuel@OPNFV).
+- Per POD specific configuration specifies POD unique parameters, the POD
+  parameter possible to alter is governed by the Fuel@OPNFV project.
+- Plugin configuration - providing configuration of a specific plugin.
+  these configurations maintain there own namespace and are normally maintained
+  by collaborative projects building Fuel@OPNFV plugins
+- Deployment scenario configuration - provides a high level, POD/HW environment
+  independent scenario configuration for a specifiv deployment. It defines what
+  features/plugins that shall be deployed - as well needed overrides of the base
+  installer-, POD/HW environment- configurations. Objects allowed to override
+  is governed by the Fuel@OPNFV project.
+
+Executing a deployment
+----------------------
+deploy.sh must be executed locally at the target lab/pod/jumpserver
+A configuration structure must be provided - see the section below.
+It is straight forward to execute a deployment task - as an example:
+sudo deploy.sh -b file:///home/jenkins/config -l LF-1 -p POD-2 -s
+os_odl-l2_ha -i file:///home/jenkins/MyIso.iso
+
+-b and -i arguments should be expressed in URI style (eg: file://...
+or http://.... The resources can thus be local or remote.
+
+Configuration repository structure
+----------------------------------
+The CI deployment engine relies on a configuration directory/file structure
+pointed to by the -b option described above.
+Normally this points to the secure classified OPNFV securedlab repo to which
+only jenkins and andmins have access to, but you may point to any local or
+remote strcture fullfilling the diectory/file structure below.
+The reason that this configuration structure needs to be secure/hidden
+is that there are security sensitive information in the various configuration
+files.
+A local stripped version of this configuration structure with virtual
+deployment configurations also exist under build/config/.
+Following configuration directory and file structure should be adheare to:
+
+TOP
+!
++---- labs
+       !
+       +---- lab-name-1
+       !        !
+       !        +---- pod-name-1
+       !        !        !
+       !        !        +---- fuel
+       !        !               !
+       !        !               +---- config
+       !        !                       !
+       !        !                       +---- dea-pod-override.yaml
+       !        !                       !
+       !        !                       +---- dha.yaml
+       !        !
+       !        +---- pod-name-2
+       !                 !
+       !
+       +---- lab-name-2
+       !        !
+
+
+Creating a deployment scenario
+------------------------------
+Please find deploy/scenario/README for instructions on how to create a new
+deployment scenario.
\ No newline at end of file
index d5b70d0..d1f411f 100755 (executable)
@@ -1,8 +1,180 @@
 #!/bin/bash
+##############################################################################
+# 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
+##############################################################################
+
+############################################################################
+# BEGIN of Exit handlers
+#
+do_exit () {
+    clean
+    echo "Exiting ..."
+}
+#
+# End of Exit handlers
+############################################################################
+
+############################################################################
+# BEGIN of usage description
+#
+usage ()
+{
+cat << EOF
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+`basename $0`: Deploys the Fuel@OPNFV stack
+
+usage: `basename $0` -b base-uri -l lab-name -p pod-name -i iso
+       -s deployment-scenario [-S optional Deploy-scenario path URI]
+       [-R optional local relen repo (containing deployment Scenarios]
+
+OPTIONS:
+  -b  Base-uri for the stack-configuration structure
+  -l  Lab-name
+  -p  Pod-name
+  -s  Deploy-scenario short-name/base-file-name
+  -i  iso url
+
+Description:
+Deploys the Fuel@OPNFV stack on the indicated lab resource
+
+This script provides the Fuel@OPNFV deployment abstraction
+It depends on the OPNFV official configuration directory/file structure
+and provides a fairly simple mechanism to execute a deployment.
+Input parameters to the build script is:
+-b Base URI to the configuration directory (needs to be provided in a URI
+   style, it can be a local resource: file:// or a remote resource http(s)://)
+-l Lab name as defined in the configuration directory, e.g. lf
+-p POD name as defined in the configuration directory, e.g. pod-1
+-s Deployment-scenario, this points to a deployment/test scenario file as
+   defined in the configuration directory:
+   e.g fuel-ocl-heat-ceilometer_scenario_0.0.1.yaml
+   or a deployment short-name as defined by scenario.yaml in the deployment
+   scenario path.
+-i .iso image to be deployed (needs to be provided in a URI
+   style, it can be a local resource: file:// or a remote resource http(s)://)
+
+NOTE: Root priviledges are needed for this script to run
+
+Examples:
+sudo `basename $0` -b file:///home/jenkins/lab-config -l lf -p pod1 -s ha_odl-l3_heat_ceilometer -i file:///home/jenkins/myiso.iso
+EOF
+}
+
+#
+# END of usage description
+############################################################################
+
+############################################################################
+# BEGIN of deployment clean-up
+#
+clean() {
+    echo "Cleaning up deploy tmp directories"
+    rm -rf ${SCRIPT_PATH}/config
+    rm -rf ${SCRIPT_PATH}/ISO
+    rm -rf ${SCRIPT_PATH}/releng
+}
+#
+# END of deployment clean-up
+############################################################################
+
+############################################################################
+# BEGIN of shorthand variables for internal use
+#
+SCRIPT_PATH=$(readlink -f $(dirname ${BASH_SOURCE[0]}))
+DEPLOY_DIR=$(cd ${SCRIPT_PATH}/../deploy; pwd)
+RELENG_REPO=https://jonasbjurel@gerrit.opnfv.org/gerrit/releng
+#
+# END of variables to customize
+############################################################################
+
+############################################################################
+# BEGIN of main
+#
+while getopts "b:l:p:s:i:h" OPTION
+do
+    case $OPTION in
+        b)
+            BASE_CONFIG_URI=${OPTARG}
+            ;;
+        l)
+            TARGET_LAB=${OPTARG}
+            ;;
+        p)
+            TARGET_POD=${OPTARG}
+            ;;
+        s)
+            DEPLOY_SCENARIO=${OPTARG}
+            ;;
+        i)
+            ISO=${OPTARG}
+            ;;
+        h)
+            usage
+            exit 0
+            ;;
+        *)
+            echo "${OPTION} is not a valid argument"
+            echo "Arguments not according to new argument style"
+            echo "Trying old-style compatibility mode"
+            pushd ${DEPLOY_DIR} > /dev/null
+            python deploy.py "$@"
+            popd > /dev/null
+            exit 0
+            ;;
+    esac
+done
+
+if [[ $EUID -ne 0 ]]; then
+   echo "This script must be run as root" 1>&2
+   exit 1
+fi
+
+if [ -z $BASE_CONFIG_URI ] || [ -z $TARGET_LAB ] || \
+   [ -z $TARGET_POD ] || [ -z $DEPLOY_SCENARIO ] || \
+   [ -z $ISO ]; then
+    echo "Arguments not according to new argument style"
+    echo "Trying old-style compatibility mode"
+    pushd ${DEPLOY_DIR} > /dev/null
+    python deploy.py "$@"
+    popd > /dev/null
+    exit 0
+fi
+
+# Enable the automatic exit trap
 set -o errexit
-topdir=$(dirname $(readlink -f $BASH_SOURCE))
-deploydir=$(cd ${topdir}/../deploy; pwd)
-pushd ${deploydir} > /dev/null
-echo -e "python deploy.py $@\n"
-python deploy.py $@
-popd > /dev/null
\ No newline at end of file
+trap do_exit SIGINT SIGTERM EXIT
+
+clean
+
+pushd ${DEPLOY_DIR} > /dev/null
+# Prepare the deploy config files based on lab/pod information, deployment
+# scenario, etc.
+
+echo "python deploy-config.py -dha ${BASE_CONFIG_URI}/labs/${TARGET_LAB}/${TARGET_POD}/fuel/config/dha.yaml -deab ${DEPLOY_DIR}/config/dea_base.yaml -deao ${BASE_CONFIG_URI}/labs/${TARGET_LAB}/${TARGET_POD}/fuel/config/dea-pod-override.yaml -scenario-base-uri ${DEPLOY_DIR}/scenario -scenario ${DEPLOY_SCENARIO} -plugins ${DEPLOY_DIR}/config/plugins -output ${SCRIPT_PATH}/config"
+
+python deploy-config.py -dha ${BASE_CONFIG_URI}/labs/${TARGET_LAB}/${TARGET_POD}/fuel/config/dha.yaml -deab file://${DEPLOY_DIR}/config/dea_base.yaml -deao ${BASE_CONFIG_URI}/labs/${TARGET_LAB}/${TARGET_POD}/fuel/config/dea-pod-override.yaml -scenario-base-uri file://${DEPLOY_DIR}/scenario -scenario ${DEPLOY_SCENARIO} -plugins file://${DEPLOY_DIR}/config/plugins -output ${SCRIPT_PATH}/config
+
+# Download iso if it doesn't already exists locally
+if [[ $ISO == file://* ]]; then
+    ISO=${ISO#file://}
+else
+    mkdir -p ${SCRIPT_PATH}/ISO
+    curl -o ${SCRIPT_PATH}/ISO/image.iso $ISO
+    ISO=${SCRIPT_PATH}/ISO/image.iso
+fi
+# Start deployment
+echo "python deploy.py -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO"
+python deploy.py -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO
+popd > /dev/null
+
+# TBD: Upload the test-section of the scenario yaml file to the fuel master:
+# var/www/test.yaml
+
+#
+# END of main
+############################################################################
index a456679..46121df 100644 (file)
@@ -30,9 +30,18 @@ class ConfigureNodes(object):
 
     def config_nodes(self):
         log('Configure nodes')
+
+        # Super dirty fix since Fuel 7 requires user defined roles to be
+        # assigned before anything else (BUG fixed in Fuel 8)!
+        for node_id, roles_blade in self.node_id_roles_dict.iteritems():
+            if "opendaylight" in roles_blade[0] or "onos" in roles_blade[0] or "contrail" in roles_blade[0]:
+                exec_cmd('fuel node set --node-id %s --role %s --env %s'
+                         % (node_id, roles_blade[0], self.env_id))
+
         for node_id, roles_blade in self.node_id_roles_dict.iteritems():
-            exec_cmd('fuel node set --node-id %s --role %s --env %s'
-                     % (node_id, roles_blade[0], self.env_id))
+            if "opendaylight" not in roles_blade[0] and "onos" not in roles_blade[0] and "contrail" not in roles_blade[0]:
+                exec_cmd('fuel node set --node-id %s --role %s --env %s'
+                         % (node_id, roles_blade[0], self.env_id))
 
         self.download_deployment_config()
         for node_id, roles_blade in self.node_id_roles_dict.iteritems():
index c773e1b..052634f 100644 (file)
@@ -47,9 +47,19 @@ class ConfigureSettings(object):
         settings_yaml = ('%s/settings_%s.yaml'
                          % (self.yaml_config_dir, self.env_id))
         check_file_exists(settings_yaml)
-        backup(settings_yaml)
 
+        with io.open(settings_yaml, 'r') as stream:
+            orig_dea = yaml.load(stream)
+
+        backup(settings_yaml)
         settings = self.dea.get_property('settings')
+        # Copy fuel defined plugin_id's to user defined settings
+        for plugin in orig_dea['editable']:
+            if 'metadata' in orig_dea['editable'][plugin] and 'plugin_id' in orig_dea['editable'][plugin]['metadata']:
+                if not plugin in settings['editable']:
+                    settings['editable'][plugin] = orig_dea['editable'][plugin]
+                else:
+                    settings['editable'][plugin]["metadata"]["plugin_id"] = orig_dea['editable'][plugin]["metadata"]["plugin_id"]
 
         with io.open(settings_yaml, 'w') as stream:
             yaml.dump(settings, stream, default_flow_style=False)
index ccd43d7..bc27876 100644 (file)
@@ -49,8 +49,13 @@ def exec_cmd(cmd, check=True):
     return_code = process.returncode
     if check:
         if return_code > 0:
+            print "Failed command: " + str(cmd)
+            print "Command returned response: " + str(response)
+            print "Command return code: " + str(return_code)
             raise Exception(response)
         else:
+            print "Command: " + str(cmd)
+            print str(response)
             return response
     return response, return_code
 
diff --git a/deploy/config/dea_base.yaml b/deploy/config/dea_base.yaml
new file mode 100644 (file)
index 0000000..d3188a1
--- /dev/null
@@ -0,0 +1,597 @@
+dea-base-config-metadata:
+  title: 'Deployment Environment Adapter Base configuration'
+  # DEA API version supported
+  version: '0.1'
+  created: 'Mon Dec 28 2015'
+  comment: 'None'
+environment:
+  mode: ha
+  net_segment_type: tun
+wanted_release: Kilo on Ubuntu 14.04
+fuel:
+  FUEL_ACCESS:
+    password: admin
+    user: admin
+  HOSTNAME: fuel
+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:
+        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$)(?![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$)(?![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: false
+        weight: 40
+      heat:
+        description: ''
+        label: ''
+        type: hidden
+        value: true
+        weight: 30
+      metadata:
+        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: 40
+      murano:
+        description: If selected, Murano component will be installed
+        label: Install Murano
+        type: checkbox
+        value: false
+        weight: 20
+      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
+        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
+        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.
+        label: OpenStack debug logging
+        type: checkbox
+        value: false
+        weight: 20
+      libvirt_type:
+        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: 30
+      nova_quota:
+        description: Quotas are used to limit CPU and memory usage for tenants. Enabling
+          quotas will increase load on the Nova database.
+        label: Nova quotas
+        type: checkbox
+        value: false
+        weight: 25
+      puppet_debug:
+        description: Debug puppet logging mode provides more information, but requires
+          more disk space.
+        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.
+        label: Resume guests state on host boot
+        type: checkbox
+        value: true
+        weight: 60
+      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.
+        label: Use qcow format for images
+        type: checkbox
+        value: true
+        weight: 50
+      use_vcenter:
+        restrictions:
+        - condition: cluster:net_provider == 'nova_network'
+        type: hidden
+        value: false
+        weight: 30
+    corosync:
+      group:
+        description: ''
+        label: Group
+        type: text
+        value: 226.94.1.1
+        weight: 10
+      metadata:
+        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:
+        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
+        weight: 45
+      metadata:
+        label: Kernel parameters
+        weight: 40
+    murano_settings:
+      metadata:
+        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:
+        label: Neutron Advanced Configuration
+        restrictions:
+        - action: hide
+          condition: cluster:net_provider != 'neutron'
+        weight: 45
+      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_mellanox:
+      metadata:
+        enabled: true
+        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:
+        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:
+        label: Public network assignment
+        restrictions:
+        - action: hide
+          condition: cluster:net_provider != 'neutron'
+        weight: 50
+    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:
+        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
+        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-7.0/operations.html#external-ubuntu-ops).
+
+          '
+        extra_priority: null
+        type: custom_repo_configuration
+        value:
+        - name: ubuntu
+          priority: null
+          section: main
+          suite: trusty
+          type: deb
+          uri: http://10.20.0.2:8080/ubuntu-part
+        - name: ubuntu-updates
+          priority: null
+          section: main
+          suite: trusty
+          type: deb
+          uri: http://10.20.0.2:8080/ubuntu-part
+        - name: ubuntu-security
+          priority: null
+          section: main
+          suite: trusty
+          type: deb
+          uri: http://10.20.0.2:8080/ubuntu-part
+        - name: mos
+          priority: 1050
+          section: main restricted
+          suite: mos7.0
+          type: deb
+          uri: http://10.20.0.2:8080/2015.1.0-7.0/ubuntu/x86_64
+        - name: mos-updates
+          priority: 1050
+          section: main restricted
+          suite: mos7.0-updates
+          type: deb
+          uri: http://10.20.0.2:8080/mos-ubuntu
+        - name: mos-security
+          priority: 1050
+          section: main restricted
+          suite: mos7.0-security
+          type: deb
+          uri: http://10.20.0.2:8080/mos-ubuntu
+        - name: mos-holdback
+          priority: 1100
+          section: main restricted
+          suite: mos7.0-holdback
+          type: deb
+          uri: http://10.20.0.2:8080/mos-ubuntu
+        - name: Auxiliary
+          priority: 1150
+          section: main restricted
+          suite: auxiliary
+          type: deb
+          uri: http://10.20.0.2:8080/2015.1.0-7.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: true
+        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: true
+        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:
+        label: Storage
+        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)
+        restrictions:
+        - settings:storage.images_ceph.value == false
+        type: checkbox
+        value: true
+        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: '2'
+        weight: 85
+      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
+        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:
+        label: Workloads Collector User
+        restrictions:
+        - action: hide
+          condition: 'true'
+        weight: 10
+      password:
+        type: password
+        value: YqvwqNhL
+      tenant:
+        type: text
+        value: services
+      user:
+        type: text
+        value: fuel_stats_user
diff --git a/deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml b/deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml
new file mode 100644 (file)
index 0000000..2be68e2
--- /dev/null
@@ -0,0 +1,278 @@
+dea-pod-override-config-metadata:
+  title: 'Deployment Environment Adapter POD override for Development Pipeline - Default version'
+  version: '0.1'
+  created: 'Thu 7 2016'
+  comment: 'None'
+environment:
+  name: opnfv_virt
+fuel:
+  ADMIN_NETWORK:
+    cidr: 10.20.0.0/24
+    dhcp_gateway: 10.20.0.2
+    dhcp_pool_end: 10.20.0.254
+    dhcp_pool_start: 10.20.0.3
+    ipaddress: 10.20.0.2
+    netmask: 255.255.0.0
+  DNS_DOMAIN: opnfvericsson.se
+  DNS_SEARCH: opnfvericsson.se
+  DNS_UPSTREAM: 10.118.32.193
+  FUEL_ACCESS:
+    password: admin
+    user: admin
+  HOSTNAME: opnfv_virt
+  NTP1: 81.170.152.66
+  NTP2: 83.168.200.199
+  NTP3: 78.108.60.252
+interfaces_1:
+  eth0:
+  - fuelweb_admin
+  - management
+  eth1:
+  - storage
+  eth2:
+  - private
+  eth3:
+  - public
+transformations_1:
+  transformations:
+  - action: add-br
+    name: br-fw-admin
+  - action: add-br
+    name: br-mgmt
+  - action: add-br
+    name: br-storage
+  - action: add-br
+    name: br-ex
+  - action: add-br
+    name: br-floating
+    provider: ovs
+  - action: add-patch
+    bridges:
+    - br-floating
+    - br-ex
+    mtu: 65000
+    provider: ovs
+  - action: add-br
+    name: br-mesh
+  - action: add-port
+    bridge: br-fw-admin
+    name: eth0
+  - action: add-port
+    bridge: br-mgmt
+    name: eth0.101
+  - action: add-port
+    bridge: br-storage
+    name: eth1.102
+  - action: add-port
+    bridge: br-mesh
+    name: eth2.103
+  - action: add-port
+    bridge: br-ex
+    name: eth3
+network:
+  management_vip: 192.168.0.2
+  management_vrouter_vip: 192.168.0.1
+  networking_parameters:
+    base_mac: fa:16:3e:00:00:00
+    configuration_template: null
+    dns_nameservers:
+    - 8.8.8.8
+    - 8.8.4.4
+    floating_ranges:
+    - - 172.16.0.130
+      - 172.16.0.254
+    gre_id_range:
+    - 2
+    - 65535
+    internal_cidr: 192.168.111.0/24
+    internal_gateway: 192.168.111.1
+    net_l23_provider: ovs
+    segmentation_type: tun
+    vlan_range:
+    - 1000
+    - 1030
+  networks:
+  - cidr: 172.16.0.0/24
+    gateway: 172.16.0.1
+    ip_ranges:
+    - - 172.16.0.2
+      - 172.16.0.126
+    meta:
+      cidr: 172.16.0.0/24
+      configurable: true
+      floating_range_var: floating_ranges
+      ip_range:
+      - 172.16.0.2
+      - 172.16.0.126
+      map_priority: 1
+      name: public
+      notation: ip_ranges
+      render_addr_mask: public
+      render_type: null
+      use_gateway: true
+      vips:
+      - haproxy
+      - vrouter
+      vlan_start: null
+    name: public
+    vlan_start: null
+  - cidr: 192.168.0.0/24
+    gateway: null
+    ip_ranges:
+    - - 192.168.0.1
+      - 192.168.0.254
+    meta:
+      cidr: 192.168.0.0/24
+      configurable: true
+      map_priority: 2
+      name: management
+      notation: cidr
+      render_addr_mask: internal
+      render_type: cidr
+      use_gateway: false
+      vips:
+      - haproxy
+      - vrouter
+      vlan_start: 101
+    name: management
+    vlan_start: 101
+  - cidr: 192.168.1.0/24
+    gateway: null
+    ip_ranges:
+    - - 192.168.1.1
+      - 192.168.1.254
+    meta:
+      cidr: 192.168.1.0/24
+      configurable: true
+      map_priority: 2
+      name: storage
+      notation: cidr
+      render_addr_mask: storage
+      render_type: cidr
+      use_gateway: false
+      vlan_start: 102
+    name: storage
+    vlan_start: 102
+  - cidr: 192.168.2.0/24
+    gateway: null
+    ip_ranges:
+    - - 192.168.2.1
+      - 192.168.2.254
+    meta:
+      cidr: 192.168.2.0/24
+      configurable: true
+      map_priority: 2
+      name: private
+      notation: cidr
+      render_addr_mask: null
+      render_type: cidr
+      seg_type: tun
+      use_gateway: false
+      vlan_start: 103
+    name: private
+    vlan_start: 103
+  - cidr: 10.20.0.0/16
+    gateway: 10.20.0.2
+    ip_ranges:
+    - - 10.20.0.3
+      - 10.20.0.254
+    meta:
+      configurable: false
+      map_priority: 0
+      notation: ip_ranges
+      render_addr_mask: null
+      render_type: null
+      unmovable: true
+      use_gateway: true
+    name: fuelweb_admin
+    vlan_start: null
+  public_vip: 172.16.0.3
+  public_vrouter_vip: 172.16.0.2
+  vips:
+    management:
+      ipaddr: 192.168.0.2
+      namespace: haproxy
+      network_role: mgmt/vip
+      node_roles:
+      - controller
+      - primary-controller
+    public:
+      ipaddr: 172.16.0.3
+      namespace: haproxy
+      network_role: public/vip
+      node_roles:
+      - controller
+      - primary-controller
+    vrouter:
+      ipaddr: 192.168.0.1
+      namespace: vrouter
+      network_role: mgmt/vip
+      node_roles:
+      - controller
+      - primary-controller
+    vrouter_pub:
+      ipaddr: 172.16.0.2
+      namespace: vrouter
+      network_role: public/vip
+      node_roles:
+      - controller
+      - primary-controller
+settings:
+  editable:
+    external_dns:
+      dns_list:
+        description: List of upstream DNS servers, separated by comma
+        label: DNS list
+        regex:
+          error: Invalid IP address list
+          source: ^\*$|^(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3}(?:\s*,\s*(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3})*$
+        type: text
+        value: 8.8.8.8,8.8.4.4
+        weight: 10
+      metadata:
+        label: Host OS DNS Servers
+        weight: 90
+    external_ntp:
+      metadata:
+        label: Host OS NTP Servers
+        weight: 100
+      ntp_list:
+        description: List of upstream NTP servers, separated by comma
+        label: NTP server list
+        regex:
+          error: Invalid NTP server list
+          source: ^\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(?:\.\d{1,3}){3})\s*(?:,\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(\.\d{1,3}){3})\s*)*$
+        type: text
+        value: 81.170.152.66,83.168.200.199,78.108.60.252
+        weight: 10
+    syslog:
+      metadata:
+        label: Syslog
+        weight: 50
+      syslog_port:
+        description: Remote syslog port
+        label: Port
+        regex:
+          error: Invalid syslog port
+          source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$
+        type: text
+        value: '514'
+        weight: 20
+      syslog_server:
+        description: Remote syslog hostname
+        label: Hostname
+        type: text
+        value: ''
+        weight: 10
+      syslog_transport:
+        label: Syslog transport protocol
+        type: radio
+        value: tcp
+        values:
+        - data: udp
+          description: ''
+          label: UDP
+        - data: tcp
+          description: ''
+          label: TCP
+        weight: 30
diff --git a/deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml
new file mode 100644 (file)
index 0000000..26c4d2b
--- /dev/null
@@ -0,0 +1,38 @@
+dha-pod-config-metadata:
+  title: Deployment Hardware Adapter (DHA) for fuel development pipeline - default version
+  version: 0.0.1
+  created: Jan 7 2016
+  comment: Default version
+
+# Adapter to use for this definition
+adapter: libvirt
+
+# Node list.
+# Mandatory property is id, all other properties are adapter specific.
+
+nodes:
+- id: 1
+  libvirtName: controller1
+  libvirtTemplate: templates/virtual_environment/vms/controller.xml
+- id: 2
+  libvirtName: compute1
+  libvirtTemplate: templates/virtual_environment/vms/compute.xml
+- id: 3
+  libvirtName: compute2
+  libvirtTemplate: templates/virtual_environment/vms/compute.xml
+- id: 4
+  libvirtName: compute3
+  libvirtTemplate: templates/virtual_environment/vms/compute.xml
+- id: 5
+  libvirtName: fuel-master
+  libvirtTemplate: templates/virtual_environment/vms/fuel.xml
+  isFuel: yes
+  username: root
+  password: r00tme
+
+virtNetConfDir: templates/virtual_environment/networks
+
+disks:
+  fuel: 50G
+  controller: 100G
+  compute: 50G
diff --git a/deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml b/deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml
new file mode 100644 (file)
index 0000000..7fc429b
--- /dev/null
@@ -0,0 +1,277 @@
+dea-pod-override-config-metadata:
+  title: 'Deployment Environment Adapter POD override for Development Pipeline - Ericsson ELX version'
+  version: '0.1'
+  created: 'Mon Dec 30 2015'
+  comment: 'None'
+environment:
+  name: opnfv_virt
+interfaces_1:
+  eth0:
+  - fuelweb_admin
+  - management
+  eth1:
+  - storage
+  eth2:
+  - private
+  eth3:
+  - public
+transformations_1:
+  transformations:
+  - action: add-br
+    name: br-fw-admin
+  - action: add-br
+    name: br-mgmt
+  - action: add-br
+    name: br-storage
+  - action: add-br
+    name: br-ex
+  - action: add-br
+    name: br-floating
+    provider: ovs
+  - action: add-patch
+    bridges:
+    - br-floating
+    - br-ex
+    mtu: 65000
+    provider: ovs
+  - action: add-br
+    name: br-mesh
+  - action: add-port
+    bridge: br-fw-admin
+    name: eth0
+  - action: add-port
+    bridge: br-mgmt
+    name: eth0.101
+  - action: add-port
+    bridge: br-storage
+    name: eth1.102
+  - action: add-port
+    bridge: br-mesh
+    name: eth2.103
+  - action: add-port
+    bridge: br-ex
+    name: eth3
+fuel:
+  ADMIN_NETWORK:
+    cidr: 10.20.0.0/24
+    dhcp_gateway: 10.20.0.2
+    dhcp_pool_end: 10.20.0.254
+    dhcp_pool_start: 10.20.0.3
+    ipaddress: 10.20.0.2
+    netmask: 255.255.0.0
+  DNS_DOMAIN: opnfvericsson.se
+  DNS_SEARCH: opnfvericsson.se
+  DNS_UPSTREAM: 147.214.6.234
+  FUEL_ACCESS:
+    password: admin
+    user: admin
+  HOSTNAME: opnfv_virt
+  NTP1: 193.181.14.10
+  NTP2: 193.181.14.11
+  NTP3: null
+network:
+  management_vip: 192.168.0.2
+  management_vrouter_vip: 192.168.0.1
+  networking_parameters:
+    base_mac: fa:16:3e:00:00:00
+    configuration_template: null
+    dns_nameservers:
+    - 147.214.6.234
+    floating_ranges:
+    - - 172.16.0.130
+      - 172.16.0.254
+    gre_id_range:
+    - 2
+    - 65535
+    internal_cidr: 192.168.111.0/24
+    internal_gateway: 192.168.111.1
+    net_l23_provider: ovs
+    segmentation_type: tun
+    vlan_range:
+    - 1000
+    - 1030
+  networks:
+  - cidr: 172.16.0.0/24
+    gateway: 172.16.0.1
+    ip_ranges:
+    - - 172.16.0.2
+      - 172.16.0.126
+    meta:
+      cidr: 172.16.0.0/24
+      configurable: true
+      floating_range_var: floating_ranges
+      ip_range:
+      - 172.16.0.2
+      - 172.16.0.126
+      map_priority: 1
+      name: public
+      notation: ip_ranges
+      render_addr_mask: public
+      render_type: null
+      use_gateway: true
+      vips:
+      - haproxy
+      - vrouter
+      vlan_start: null
+    name: public
+    vlan_start: null
+  - cidr: 192.168.0.0/24
+    gateway: null
+    ip_ranges:
+    - - 192.168.0.1
+      - 192.168.0.254
+    meta:
+      cidr: 192.168.0.0/24
+      configurable: true
+      map_priority: 2
+      name: management
+      notation: cidr
+      render_addr_mask: internal
+      render_type: cidr
+      use_gateway: false
+      vips:
+      - haproxy
+      - vrouter
+      vlan_start: 101
+    name: management
+    vlan_start: 101
+  - cidr: 192.168.1.0/24
+    gateway: null
+    ip_ranges:
+    - - 192.168.1.1
+      - 192.168.1.254
+    meta:
+      cidr: 192.168.1.0/24
+      configurable: true
+      map_priority: 2
+      name: storage
+      notation: cidr
+      render_addr_mask: storage
+      render_type: cidr
+      use_gateway: false
+      vlan_start: 102
+    name: storage
+    vlan_start: 102
+  - cidr: 192.168.2.0/24
+    gateway: null
+    ip_ranges:
+    - - 192.168.2.1
+      - 192.168.2.254
+    meta:
+      cidr: 192.168.2.0/24
+      configurable: true
+      map_priority: 2
+      name: private
+      notation: cidr
+      render_addr_mask: null
+      render_type: cidr
+      seg_type: tun
+      use_gateway: false
+      vlan_start: 103
+    name: private
+    vlan_start: 103
+  - cidr: 10.20.0.0/16
+    gateway: 10.20.0.2
+    ip_ranges:
+    - - 10.20.0.3
+      - 10.20.0.254
+    meta:
+      configurable: false
+      map_priority: 0
+      notation: ip_ranges
+      render_addr_mask: null
+      render_type: null
+      unmovable: true
+      use_gateway: true
+    name: fuelweb_admin
+    vlan_start: null
+  public_vip: 172.16.0.3
+  public_vrouter_vip: 172.16.0.2
+  vips:
+    management:
+      ipaddr: 192.168.0.2
+      namespace: haproxy
+      network_role: mgmt/vip
+      node_roles:
+      - controller
+      - primary-controller
+    public:
+      ipaddr: 172.16.0.3
+      namespace: haproxy
+      network_role: public/vip
+      node_roles:
+      - controller
+      - primary-controller
+    vrouter:
+      ipaddr: 192.168.0.1
+      namespace: vrouter
+      network_role: mgmt/vip
+      node_roles:
+      - controller
+      - primary-controller
+    vrouter_pub:
+      ipaddr: 172.16.0.2
+      namespace: vrouter
+      network_role: public/vip
+      node_roles:
+      - controller
+      - primary-controller
+settings:
+  editable:
+    external_dns:
+      dns_list:
+        description: List of upstream DNS servers, separated by comma
+        label: DNS list
+        regex:
+          error: Invalid IP address list
+          source: ^\*$|^(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3}(?:\s*,\s*(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3})*$
+        type: text
+        value: 147.214.6.234
+        weight: 10
+      metadata:
+        label: Host OS DNS Servers
+        weight: 90
+    external_ntp:
+      metadata:
+        label: Host OS NTP Servers
+        weight: 100
+      ntp_list:
+        description: List of upstream NTP servers, separated by comma
+        label: NTP server list
+        regex:
+          error: Invalid NTP server list
+          source: ^\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(?:\.\d{1,3}){3})\s*(?:,\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(\.\d{1,3}){3})\s*)*$
+        type: text
+        value: 193.181.14.10, 193.181.14.11
+        weight: 10
+    syslog:
+      metadata:
+        label: Syslog
+        weight: 50
+      syslog_port:
+        description: Remote syslog port
+        label: Port
+        regex:
+          error: Invalid syslog port
+          source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$
+        type: text
+        value: '514'
+        weight: 20
+      syslog_server:
+        description: Remote syslog hostname
+        label: Hostname
+        type: text
+        value: ''
+        weight: 10
+      syslog_transport:
+        label: Syslog transport protocol
+        type: radio
+        value: tcp
+        values:
+        - data: udp
+          description: ''
+          label: UDP
+        - data: tcp
+          description: ''
+          label: TCP
+        weight: 30
\ No newline at end of file
diff --git a/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml
new file mode 100644 (file)
index 0000000..fc0e93a
--- /dev/null
@@ -0,0 +1,38 @@
+dha-pod-config-metadata:
+  title: Deployment Hardware Adapter (DHA) for fuel development pipeline - Ericsson ELX version
+  version: 0.0.1
+  created: Dececember 30 2015
+  comment: ELX version
+
+# Adapter to use for this definition
+adapter: libvirt
+
+# Node list.
+# Mandatory property is id, all other properties are adapter specific.
+
+nodes:
+- id: 1
+  libvirtName: controller1
+  libvirtTemplate: templates/virtual_environment/vms/controller.xml
+- id: 2
+  libvirtName: compute1
+  libvirtTemplate: templates/virtual_environment/vms/compute.xml
+- id: 3
+  libvirtName: compute2
+  libvirtTemplate: templates/virtual_environment/vms/compute.xml
+- id: 4
+  libvirtName: compute3
+  libvirtTemplate: templates/virtual_environment/vms/compute.xml
+- id: 5
+  libvirtName: fuel-master
+  libvirtTemplate: templates/virtual_environment/vms/fuel.xml
+  isFuel: yes
+  username: root
+  password: r00tme
+
+virtNetConfDir: templates/virtual_environment/networks
+
+disks:
+  fuel: 50G
+  controller: 100G
+  compute: 50G
diff --git a/deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml b/deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml
new file mode 100644 (file)
index 0000000..df59e55
--- /dev/null
@@ -0,0 +1,18 @@
+plugin-config-metadata:
+  title: NFV QEMU-KVM fuel Plugin configuration template
+  version: 0.1
+  created: Wed Jan 6 2016
+  comment: None
+
+fuel-plugin-qemu:
+  metadata:
+    enabled: true
+    label: fuel-plugin-qemu
+    # plugin_id: Assigned during installation
+    toggleable: true
+    weight: 70
+  use_kvm:
+    label: 'EXPERIMENTAL: KVM enhancements for NFV'
+    type: checkbox
+    value: true
+    weight: 20
diff --git a/deploy/config/plugins/fuel-nfvovs_0.0.1.yaml b/deploy/config/plugins/fuel-nfvovs_0.0.1.yaml
new file mode 100644 (file)
index 0000000..02b6bf8
--- /dev/null
@@ -0,0 +1,19 @@
+plugin-config-metadata:
+  title: NFV OVS fuel Plugin configuration template
+  version: 0.1
+  created: Wed Jan 6 2016
+  comment: None
+
+fuel-plugin-ovsnfv:
+  fuel-plugin-ovsnfv_text:
+    description: Description for text field
+    label: Text field
+    type: text
+    value: Set default value
+    weight: 25
+  metadata:
+    enabled: true
+    label: Userspace OVS support
+    # plugin_id: Assigned during installation
+    toggleable: true
+    weight: 70
diff --git a/deploy/config/plugins/fuel-odl_0.0.1.yaml b/deploy/config/plugins/fuel-odl_0.0.1.yaml
new file mode 100644 (file)
index 0000000..11622a1
--- /dev/null
@@ -0,0 +1,64 @@
+plugin-config-metadata:
+  title: OpenDaylight fuel Plugin configuration template
+  version: 0.1
+  created: Mon Dec 28 2015
+  comment: None
+
+opendaylight:
+  enable_gbp:
+    label: GBP features
+    type: checkbox
+    value: false
+    weight: 14
+  enable_l3_odl:
+    label: 'EXPERIMENTAL: Use ODL to manage L3 traffic'
+    type: checkbox
+    value: false
+    weight: 12
+  enable_sfc:
+    label: SFC features
+    type: checkbox
+    value: false
+    weight: 13
+  metadata:
+    enabled: true
+    label: OpenDaylight Lithium plugin
+    odl_features:
+      default:
+      - config
+      - standard
+      - region
+      - package
+      - kar
+      - ssh
+      - management
+      gbp:
+      - odl-groupbasedpolicy-base
+      - odl-groupbasedpolicy-ofoverlay
+      ovs:
+      - odl-ovsdb-openstack
+      - odl-restconf-all
+      - odl-aaa-authn
+      - odl-dlux-all
+      sfc:
+      - odl-sfc-core
+      - odl-sfc-sb-rest
+      - odl-sfc-ui
+      - odl-sfc-netconf
+      - odl-sfc-ovs
+      - odl-sfcofl2
+      - odl-sfc-test-consumer
+      # plugin_id: Assigned during installation
+    restrictions:
+    - cluster:net_provider != 'neutron': Only neutron is supported by OpenDaylight
+    toggleable: true
+    weight: 70
+  rest_api_port:
+    description: Port on which ODL REST API will be available.
+    label: Port number
+    regex:
+      error: Invalid port number
+      source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$
+    type: text
+    value: '8282'
+    weight: 40
diff --git a/deploy/config/plugins/fuel-onos_0.0.1.yaml b/deploy/config/plugins/fuel-onos_0.0.1.yaml
new file mode 100644 (file)
index 0000000..48dfd2f
--- /dev/null
@@ -0,0 +1,24 @@
+plugin-config-metadata:
+  title: ONOS fuel Plugin configuration template
+  version: 0.1
+  created: Wed Jan 7 2016
+  comment: None
+
+onos:
+  metadata:
+    enabled: true
+    label: onos plugin
+    # plugin_id: Assigned during installation
+    restrictions:
+    - cluster:net_provider != 'neutron': Neutron only
+    toggleable: true
+    weight: 70
+  public_eth:
+    description: Please note that onos needs an independent eth for public
+      network when interfaces of nodes are configured, or L3 traffic to
+      internet will fail!
+      Defualt is eth3.
+    label: Public Ethernet Port
+    type: text
+    value: eth3
+    weight: 20
diff --git a/deploy/deploy-config.py b/deploy/deploy-config.py
new file mode 100644 (file)
index 0000000..f94466f
--- /dev/null
@@ -0,0 +1,296 @@
+#!/usr/bin/python
+###############################################################################
+# 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 script constructs the final deployment dea.yaml and dha.yaml files
+# The dea.yaml get's constructed from (in reverse priority):
+# 1) dea-base
+# 2) dea-pod-override
+# 3) deployment-scenario dea-override-config section
+#
+# The dha.yaml get's constructed from (in reverse priority):
+# 1) pod dha
+# 2) deployment-scenario dha-override-config section
+###############################################################################
+
+import os
+import yaml
+import sys
+import urllib2
+import calendar
+import time
+import collections
+import hashlib
+
+from functools import reduce
+from operator import or_
+from common import (
+    log,
+    exec_cmd,
+    err,
+    warn,
+    check_file_exists,
+    create_dir_if_not_exists,
+    delete,
+    check_if_root,
+    ArgParser,
+)
+
+def parse_arguments():
+    parser = ArgParser(prog='python %s' % __file__)
+    parser.add_argument('-dha', dest='dha_uri', action='store',
+                        default=False, help='dha configuration file FQDN URI', required=True)
+    parser.add_argument('-deab', dest='dea_base_uri', action='store',
+                        default=False, help='dea base configuration FQDN URI', required=True)
+    parser.add_argument('-deao', dest='dea_pod_override_uri', action='store',
+                        default=False, help='dea POD override configuration FQDN URI',
+                        required=True)
+    parser.add_argument('-scenario-base-uri', dest='scenario_base_uri', action='store',
+                        default=False, help='Deploymen scenario base directory URI',
+                        required=True)
+    parser.add_argument('-scenario', dest='scenario', action='store',
+                        default=False, help='Deploymen scenario short-name (priority), or base file name (in the absense of a shortname defenition)',
+                        required=True)
+
+    parser.add_argument('-plugins', dest='plugins_uri', action='store',
+                        default=False, help='Plugin configurations directory URI',
+                        required=True)
+    parser.add_argument('-output', dest='output_path', action='store',
+                        default=False,
+                        help='Local path for resulting output configuration files',
+                        required=True)
+    args = parser.parse_args()
+    log(args)
+    kwargs = {'dha_uri': args.dha_uri,
+              'dea_base_uri': args.dea_base_uri,
+              'dea_pod_override_uri': args.dea_pod_override_uri,
+              'scenario_base_uri': args.scenario_base_uri,
+              'scenario': args.scenario,
+              'plugins_uri': args.plugins_uri,
+              'output_path': args.output_path}
+    return kwargs
+
+def setup_yaml():
+  represent_dict_order = lambda self, data:  self.represent_mapping('tag:yaml.org,2002:map', data.items())
+  yaml.add_representer(collections.OrderedDict, represent_dict_order)
+
+def sha_uri(uri):
+    import hashlib
+    response = urllib2.urlopen(uri)
+    data = response.read()
+    sha1 = hashlib.sha1()
+    sha1.update(data)
+    return sha1.hexdigest()
+
+def mergedicts(dict1, dict2):
+    for k in set(dict1.keys()).union(dict2.keys()):
+        if k in dict1 and k in dict2:
+            if isinstance(dict1[k], dict) and isinstance(dict2[k], dict):
+                yield (k, dict(mergedicts(dict1[k], dict2[k])))
+            else:
+                # If one of the values is not a dict, you can't continue
+                # merging it.
+                # Value from second dict overrides one in first and we move on.
+                yield (k, dict2[k])
+        elif k in dict1:
+            yield (k, dict1[k])
+        else:
+            yield (k, dict2[k])
+
+setup_yaml()
+kwargs = parse_arguments()
+
+# Generate final dea.yaml by merging following config files/fragments in revers priority order:
+# "dea-base", "dea-pod-override", "deplyment-scenario/module-config-override"
+# and "deployment-scenario/dea-override"
+print 'Generating final dea.yaml configuration....'
+
+# Fetch dea-base, extract and purge meta-data
+print 'Parsing dea-base from: ' + kwargs["dea_base_uri"] + "...."
+response = urllib2.urlopen(kwargs["dea_base_uri"])
+dea_base_conf = yaml.load(response.read())
+dea_base_title = dea_base_conf['dea-base-config-metadata']['title']
+dea_base_version = dea_base_conf['dea-base-config-metadata']['version']
+dea_base_creation = dea_base_conf['dea-base-config-metadata']['created']
+dea_base_sha = sha_uri(kwargs["dea_base_uri"])
+dea_base_comment = dea_base_conf['dea-base-config-metadata']['comment']
+dea_base_conf.pop('dea-base-config-metadata')
+final_dea_conf = dea_base_conf
+
+# Fetch dea-pod-override, extract and purge meta-data, merge with previous dea data structure
+print 'Parsing the dea-pod-override from: ' + kwargs["dea_pod_override_uri"] + "...."
+response = urllib2.urlopen(kwargs["dea_pod_override_uri"])
+dea_pod_override_conf = yaml.load(response.read())
+if dea_pod_override_conf:
+    dea_pod_title = dea_pod_override_conf['dea-pod-override-config-metadata']['title']
+    dea_pod_version = dea_pod_override_conf['dea-pod-override-config-metadata']['version']
+    dea_pod_creation = dea_pod_override_conf['dea-pod-override-config-metadata']['created']
+    dea_pod_sha = sha_uri(kwargs["dea_pod_override_uri"])
+    dea_pod_comment = dea_pod_override_conf['dea-pod-override-config-metadata']['comment']
+    print 'Merging dea-base and dea-pod-override configuration ....'
+    dea_pod_override_conf.pop('dea-pod-override-config-metadata')
+    if dea_pod_override_conf:
+        final_dea_conf = dict(mergedicts(final_dea_conf, dea_pod_override_conf))
+
+# Fetch deployment-scenario, extract and purge meta-data, merge deployment-scenario/
+# dea-override-configith previous dea data structure
+print 'Parsing deployment-scenario from: ' + kwargs["scenario"] + "...."
+
+response = urllib2.urlopen(kwargs["scenario_base_uri"] + "/scenario.yaml")
+scenario_short_translation_conf = yaml.load(response.read())
+if kwargs["scenario"] in scenario_short_translation_conf:
+    scenario_uri = kwargs["scenario_base_uri"] + "/" + scenario_short_translation_conf[kwargs["scenario"]]['configfile']
+else:
+    scenario_uri = kwargs["scenario_base_uri"] + "/" + kwargs["scenario"]
+response = urllib2.urlopen(scenario_uri)
+deploy_scenario_conf = yaml.load(response.read())
+
+if deploy_scenario_conf:
+    deploy_scenario_title = deploy_scenario_conf['deployment-scenario-metadata']['title']
+    deploy_scenario_version = deploy_scenario_conf['deployment-scenario-metadata']['version']
+    deploy_scenario_creation = deploy_scenario_conf['deployment-scenario-metadata']['created']
+    deploy_scenario_sha = sha_uri(scenario_uri)
+    deploy_scenario_comment = deploy_scenario_conf['deployment-scenario-metadata']['comment']
+    deploy_scenario_conf.pop('deployment-scenario-metadata')
+else:
+    print "Deployment scenario file not found or is empty"
+    print "Cannot continue, exiting ...."
+    sys.exit(1)
+
+dea_scenario_override_conf = deploy_scenario_conf["dea-override-config"]
+if dea_scenario_override_conf:
+    print 'Merging dea-base-, dea-pod-override- and deployment-scenario configuration into final dea.yaml configuration....'
+    final_dea_conf = dict(mergedicts(final_dea_conf, dea_scenario_override_conf))
+
+# Fetch plugin-configuration configuration files, extract and purge meta-data,
+# merge/append with previous dea data structure, override plugin-configuration with
+# deploy-scenario/module-config-override
+modules = []
+module_uris = []
+module_titles = []
+module_versions = []
+module_creations = []
+module_shas = []
+module_comments = []
+if deploy_scenario_conf["stack-extensions"]:
+    for module in deploy_scenario_conf["stack-extensions"]:
+        print 'Loading configuration for module: ' + module["module"] + ' and merging it to final dea.yaml configuration....'
+        response = urllib2.urlopen(kwargs["plugins_uri"] + '/' + module["module-config-name"] + '_' + module["module-config-version"] + '.yaml')
+        module_conf = yaml.load(response.read())
+        modules.append(module["module"])
+        module_uris.append(kwargs["plugins_uri"] + '/' + module["module-config-name"] + '_' + module["module-config-version"] + '.yaml')
+        module_titles.append(str(module_conf['plugin-config-metadata']['title']))
+        module_versions.append(str(module_conf['plugin-config-metadata']['version']))
+        module_creations.append(str(module_conf['plugin-config-metadata']['created']))
+        module_shas.append(sha_uri(kwargs["plugins_uri"] + '/' + module["module-config-name"] + '_' + module["module-config-version"] + '.yaml'))
+        module_comments.append(str(module_conf['plugin-config-metadata']['comment']))
+        module_conf.pop('plugin-config-metadata')
+        final_dea_conf['settings']['editable'].update(module_conf)
+        scenario_module_override_conf = module['module-config-override']
+        if scenario_module_override_conf:
+            dea_scenario_module_override_conf = {}
+            dea_scenario_module_override_conf['settings'] = {}
+            dea_scenario_module_override_conf['settings']['editable'] = {}
+            dea_scenario_module_override_conf['settings']['editable'][module["module"]] = scenario_module_override_conf
+            final_dea_conf = dict(mergedicts(final_dea_conf, dea_scenario_module_override_conf))
+
+# Dump final dea.yaml including configuration management meta-data to argument provided
+# directory
+if not os.path.exists(kwargs["output_path"]):
+    os.makedirs(kwargs["output_path"])
+print 'Dumping final dea.yaml to ' + kwargs["output_path"] + '/dea.yaml....'
+with open(kwargs["output_path"] + '/dea.yaml', "w") as f:
+    f.write("title: DEA.yaml file automatically generated from the configuration files stated in the \"configuration-files\" fragment below\n")
+    f.write("version: " + str(calendar.timegm(time.gmtime()))  + "\n")
+    f.write("created: " + str(time.strftime("%d/%m/%Y")) + " " + str(time.strftime("%H:%M:%S"))  + "\n")
+    f.write("comment: none\n")
+
+    f.write("configuration-files:\n")
+    f.write("  dea-base:\n")
+    f.write("    uri: " +  kwargs["dea_base_uri"] + "\n")
+    f.write("    title: " +  str(dea_base_title) + "\n")
+    f.write("    version: " +  str(dea_base_version) + "\n")
+    f.write("    created: " +  str(dea_base_creation) + "\n")
+    f.write("    sha1: " +  str(dea_base_sha) + "\n")
+    f.write("    comment: " +  str(dea_base_comment) + "\n")
+
+    f.write("  pod-override:\n")
+    f.write("    uri: " +  kwargs["dea_pod_override_uri"] + "\n")
+    f.write("    title: " +  str(dea_pod_title) + "\n")
+    f.write("    version: " +  str(dea_pod_version) + "\n")
+    f.write("    created: " +  str(dea_pod_creation) + "\n")
+    f.write("    sha1: " +  str(dea_pod_sha) + "\n")
+    f.write("    comment: " +  str(dea_pod_comment) + "\n")
+
+    f.write("  deployment-scenario:\n")
+    f.write("    uri: " +  str(scenario_uri) + "\n")
+    f.write("    title: " +  str(deploy_scenario_title) + "\n")
+    f.write("    version: " +  str(deploy_scenario_version) + "\n")
+    f.write("    created: " +  str(deploy_scenario_creation) + "\n")
+    f.write("    sha1: " +  str(deploy_scenario_sha) + "\n")
+    f.write("    comment: " +  str(deploy_scenario_comment) + "\n")
+
+    f.write("  plugin-modules:\n")
+    for k in range(0,len(modules)):
+        f.write("  - module: " + modules[k] + "\n")
+        f.write("    uri: " + module_uris[k] + "\n")
+        f.write("    title: " + module_titles[k] + "\n")
+        f.write("    version: " + module_versions[k] + "\n")
+        f.write("    created: " + module_creations[k] + "\n")
+        f.write("    sha-1: " + module_shas[k] + "\n")
+        f.write("    comment: " + module_comments[k] + "\n")
+
+    yaml.dump(final_dea_conf, f, default_flow_style=False)
+
+# Load POD dha and override it with "deployment-scenario/dha-override-config" section
+print 'Generating final dha.yaml configuration....'
+print 'Parsing dha-pod yaml configuration....'
+response = urllib2.urlopen(kwargs["dha_uri"])
+dha_pod_conf = yaml.load(response.read())
+dha_pod_title = dha_pod_conf['dha-pod-config-metadata']['title']
+dha_pod_version = dha_pod_conf['dha-pod-config-metadata']['version']
+dha_pod_creation = dha_pod_conf['dha-pod-config-metadata']['created']
+dha_pod_sha = sha_uri(kwargs["dha_uri"])
+dha_pod_comment = dha_pod_conf['dha-pod-config-metadata']['comment']
+dha_pod_conf.pop('dha-pod-config-metadata')
+final_dha_conf = dha_pod_conf
+
+dha_scenario_override_conf = deploy_scenario_conf["dha-override-config"]
+if dha_scenario_override_conf:
+    print 'Merging dha-pod and deployment-scenario override information to final dha.yaml configuration....'
+    final_dha_conf = dict(mergedicts(dha_base_conf, dha_scenario_override_conf))
+
+# Dump final dha.yaml to argument provided directory
+print 'Dumping final dha.yaml to ' + kwargs["output_path"] + '/dha.yaml....'
+with open(kwargs["output_path"] + '/dha.yaml', "w") as f:
+    f.write("title: DHA.yaml file automatically generated from the configuration files stated in the \"configuration-files\" fragment below\n")
+    f.write("version: " + str(calendar.timegm(time.gmtime()))  + "\n")
+    f.write("created: " + str(time.strftime("%d/%m/%Y")) + " " + str(time.strftime("%H:%M:%S"))  + "\n")
+    f.write("comment: none\n")
+
+    f.write("configuration-files:\n")
+
+    f.write("  dha-pod-configuration:\n")
+    f.write("    uri: " +  kwargs["dha_uri"] + "\n")
+    f.write("    title: " +  str(dha_pod_title) + "\n")
+    f.write("    version: " +  str(dha_pod_version) + "\n")
+    f.write("    created: " +  str(dha_pod_creation) + "\n")
+    f.write("    sha-1: " +  str(dha_pod_sha) + "\n")
+    f.write("    comment: " +  str(dha_pod_comment) + "\n")
+
+    f.write("  deployment-scenario:\n")
+    f.write("    uri: " +  str(scenario_uri) + "\n")
+    f.write("    title: " +  str(deploy_scenario_title) + "\n")
+    f.write("    version: " +  str(deploy_scenario_version) + "\n")
+    f.write("    created: " +  str(deploy_scenario_creation) + "\n")
+    f.write("    sha-1: " +  str(deploy_scenario_sha) + "\n")
+    f.write("    comment: " +  str(deploy_scenario_comment) + "\n")
+    yaml.dump(final_dha_conf, f, default_flow_style=False)
diff --git a/deploy/scenario/README b/deploy/scenario/README
new file mode 100644 (file)
index 0000000..aebeb40
--- /dev/null
@@ -0,0 +1,165 @@
+##############################################################################
+# 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
+##############################################################################
+
+Abstract:
+---------
+The directory contains configuration files for different OPNFV deployment
+feature scenarios used by Fuel@OPNFV, eg.:
+- High availability configuration
+- Type of SDN controller to be deployed
+- OPNFV collaboration project features to be deployed.
+- Provisioning of any other sevices
+
+Creating a new plugin
+---------------------
+Creating a new plugin involves creating a plugin config yaml file in
+/deploy/config/plugins. The filename should comply to following structure:
+fuel-<plugin_name>_<version>.yaml.
+The plugin configuration must include plugin configuration metadata as below:
+
+plugin-config-metadata:
+  title:
+  version:
+  created:
+  comment:
+
+Moreover, naturaly the plugin configuration must include the plugin yaml
+fragment, eg:
+
+opendaylight:
+  metadata:
+    enabled: true
+    label: OpenDaylight Lithium plugin
+.......
+
+Creating a new deployment scenario
+----------------------------------
+Creating a new deployment scenario involve creating a deployment scenario
+yaml file under deploy/scenario/. The filename should comply to following
+format: <ha | no-ha>_<SDN Controller>_<feature-1>_..._<feature-n>_<version>.yaml
+
+The deployment configuration file must contain configuration metadata as stated
+below:
+
+deployment-scenario-metadata:
+   title:
+   version:
+   created:
+   comment:
+
+To include fuel plugins, use the stack-extentions key:
+stack-extensions, eg:
+
+stack-extensions:
+   - module: opendaylight
+     module-config-name: fuel-odl
+     module-config-version: 0.0.1
+     module-config-override:
+       # Module config overrides
+       rest_api_port:
+         value: '8282'
+       enable_gbp:
+         value: false
+       enable_l3_odl:
+         value: true
+       enable_sfc:
+         value: false
+
+"module-config-name" and "module-config-version" must correspond to how
+the plugin configuration yaml was named.
+Everything under the "module-config-override" overrides the corresponding
+keys in the plugin config yaml file, this can for instance be used to configure
+the plugin.
+
+Everything under the "dea-override-config" overrides corresponding keys in the dea_base.yaml and dea_pod_override.yaml.
+You must at least provide {environment:{mode:'value},{net_segment_type:'value'}
+and {nodes:....} in order to configure the HA mode, network segmentation types
+and role to node assignments.
+Other ovverides may also be used to enable stack features such as ceph, heat,
+etc.
+Example:
+
+dea-override-config:
+  environment:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller,opendaylight
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 5
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+Optionally you may override the pod dha defenition under the
+"dha-override-config" key.
+
+Short names
+-----------
+scenario.yaml provides a mapping between a deployment scenario short-name
+and one or several deployment scenario configuration yaml files.
+
+Other
+-----
+These configuration files are used by deploy.sh provided by Fuel@OPNFV, e.g.
+deploy.sh will clone this repo when deploying.
\ No newline at end of file
diff --git a/deploy/scenario/ha_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..ae2432e
--- /dev/null
@@ -0,0 +1,113 @@
+##############################################################################
+# 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: OpenStack-only, HA deployment
+   version: 0.0.1
+   created: December 29 2015
+   comment: Fuel OpenStack-only with Ceph, Ceilometer and Heat, HA deployment
+
+##############################################################################
+# 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:
+
+##############################################################################
+# By editing the override-config sections below, you can override arbitrary
+# configuration name-space settings
+dea-override-config:
+  environment:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 5
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..e07fd0d
--- /dev/null
@@ -0,0 +1,117 @@
+##############################################################################
+# 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.1
+   created: Jan 6 2016
+   comment: NFV KVM HA
+
+##############################################################################
+# 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.1
+     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:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 5
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..1419858
--- /dev/null
@@ -0,0 +1,117 @@
+##############################################################################
+# 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 OVS HA deployment
+   version: 0.0.1
+   created: Jan 6 2016
+   comment: NFV OVS HA
+
+##############################################################################
+# 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-ovsnfv
+     module-config-name: fuel-nfvovs
+     module-config-version: 0.0.1
+     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:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 5
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..9b1d077
--- /dev/null
@@ -0,0 +1,126 @@
+##############################################################################
+# 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: ODL-L2 HA deployment
+   version: 0.0.1
+   created: Jan 5 2016
+   comment: Fuel ODL-L2 HA with Ceph, Ceilometer and Heat
+
+##############################################################################
+# 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: opendaylight
+     module-config-name: fuel-odl
+     module-config-version: 0.0.1
+     module-config-override:
+       # Module config overrides
+       rest_api_port:
+         value: '8282'
+       enable_gbp:
+         value: false
+       enable_l3_odl:
+         value: false
+       enable_sfc:
+         value: false
+
+##############################################################################
+# By editing the override-config sections below, you can override arbitrary
+# configuration name-space settings
+dea-override-config:
+  environment:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller,opendaylight
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 5
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..a0f6809
--- /dev/null
@@ -0,0 +1,126 @@
+##############################################################################
+# 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: ODL-L3 HA deployment
+   version: 0.0.1
+   created: Jan 5 2016
+   comment: Fuel ODL-L3 HA with Ceph, Ceilometer and Heat
+
+##############################################################################
+# 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: opendaylight
+     module-config-name: fuel-odl
+     module-config-version: 0.0.1
+     module-config-override:
+       # Module config overrides
+       rest_api_port:
+         value: '8282'
+       enable_gbp:
+         value: false
+       enable_l3_odl:
+         value: true
+       enable_sfc:
+         value: false
+
+##############################################################################
+# By editing the override-config sections below, you can override arbitrary
+# configuration name-space settings
+dea-override-config:
+  environment:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller,opendaylight
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 5
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/ha_onos_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_onos_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..8fc4e22
--- /dev/null
@@ -0,0 +1,120 @@
+##############################################################################
+# 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: ONOS HA deployment
+   version: 0.0.1
+   created: Jan 7 2016
+   comment: Fuel ONOS HA with Ceph, Ceilometer and Heat
+
+##############################################################################
+# 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: onos
+     module-config-name: fuel-onos
+     module-config-version: 0.0.1
+     module-config-override:
+       # Module config overrides
+       public_eth:
+         value: 'eth3'
+
+##############################################################################
+# By editing the override-config sections below, you can override arbitrary
+# configuration name-space settings
+dea-override-config:
+  environment:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller,onos
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 5
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/no-ha_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..76595e8
--- /dev/null
@@ -0,0 +1,108 @@
+##############################################################################
+# 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: OpenStack-only, No-HA deployment
+   version: 0.0.1
+   created: December 29 2015
+   comment: Fuel OpenStack-only with Ceph, Ceilometer and Heat, No-HA deployment
+
+##############################################################################
+# 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:
+
+##############################################################################
+# By editing the override-config sections below, you can override arbitrary
+# configuration name-space settings
+dea-override-config:
+  environment:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..04306c2
--- /dev/null
@@ -0,0 +1,113 @@
+##############################################################################
+# 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 NO-HA deployment
+   version: 0.0.1
+   created: Jan 6 2016
+   comment: NFV KVM NO-HA
+
+##############################################################################
+# 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.1
+     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:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..96b6f87
--- /dev/null
@@ -0,0 +1,119 @@
+##############################################################################
+# 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 and OVS No-HA deployment
+   version: 0.0.1
+   created: Jan 6 2016
+   comment: NFV KVM and OVS
+
+##############################################################################
+# 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.1
+     module-config-override:
+       # Module config overrides
+
+   - module: fuel-plugin-ovsnfv
+     module-config-name: fuel-nfvovs
+     module-config-version: 0.0.1
+     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:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_2
+  - id: 3
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_2
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_2
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..f8f68ad
--- /dev/null
@@ -0,0 +1,113 @@
+##############################################################################
+# 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 OVS NO-HA deployment
+   version: 0.0.1
+   created: Jan 6 2016
+   comment: NFV OVS NO-HA
+
+##############################################################################
+# 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-ovsnfv
+     module-config-name: fuel-nfvovs
+     module-config-version: 0.0.1
+     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:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..f3e2290
--- /dev/null
@@ -0,0 +1,121 @@
+##############################################################################
+# 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: ODL-L2 No-HA deployment
+   version: 0.0.1
+   created: December 30 2015
+   comment: Fuel ODL-L2 No HA with Ceph, Ceilometer and Heat
+
+##############################################################################
+# 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: opendaylight
+     module-config-name: fuel-odl
+     module-config-version: 0.0.1
+     module-config-override:
+       # Module config overrides
+       rest_api_port:
+         value: '8282'
+       enable_gbp:
+         value: false
+       enable_l3_odl:
+         value: false
+       enable_sfc:
+         value: false
+
+##############################################################################
+# By editing the override-config sections below, you can override arbitrary
+# configuration name-space settings
+dea-override-config:
+  environment:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller,opendaylight
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..8809389
--- /dev/null
@@ -0,0 +1,121 @@
+##############################################################################
+# 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: ODL-L3 No-HA deployment
+   version: 0.0.1
+   created: Jan 5 2016
+   comment: Fuel ODL-L3 No HA with Ceph, Ceilometer and Heat
+
+##############################################################################
+# 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: opendaylight
+     module-config-name: fuel-odl
+     module-config-version: 0.0.1
+     module-config-override:
+       # Module config overrides
+       rest_api_port:
+         value: '8282'
+       enable_gbp:
+         value: false
+       enable_l3_odl:
+         value: true
+       enable_sfc:
+         value: false
+
+##############################################################################
+# By editing the override-config sections below, you can override arbitrary
+# configuration name-space settings
+dea-override-config:
+  environment:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller,opendaylight
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml
new file mode 100644 (file)
index 0000000..e30c1df
--- /dev/null
@@ -0,0 +1,115 @@
+##############################################################################
+# 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: ONOS No-HA deployment
+   version: 0.0.1
+   created: Jan 7 2016
+   comment: ONOS No HA with Ceph, Ceilometer and Heat
+
+##############################################################################
+# 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: onos
+     module-config-name: fuel-onos
+     module-config-version: 0.0.1
+     module-config-override:
+       # Module config overrides
+       public_eth:
+         value: 'eth3'
+
+##############################################################################
+# By editing the override-config sections below, you can override arbitrary
+# configuration name-space settings
+dea-override-config:
+  environment:
+    mode: ha
+    net_segment_type: tun
+  wanted_release: Kilo on Ubuntu 14.04
+  nodes:
+  - id: 1
+    interfaces: interfaces_1
+    role: mongo,controller,onos
+    transformations: transformations_1
+  - id: 2
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 3
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  - id: 4
+    interfaces: interfaces_1
+    role: ceph-osd,compute
+    transformations: transformations_1
+  settings:
+    editable:
+      additional_components:
+        ceilometer:
+          description: If selected, Ceilometer component will be installed
+          label: Install Ceilometer
+          type: checkbox
+          value: true
+          weight: 40
+        heat:
+          description: ''
+          label: ''
+          type: hidden
+          value: true
+          weight: 30
+        metadata:
+          label: Additional Components
+          weight: 20
+      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: true
+          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: true
+          weight: 30
+
+dha-override-config:
+#  disks:
+#    contrail: 500G
+
+##############################################################################
+# 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:
diff --git a/deploy/scenario/scenario.yaml b/deploy/scenario/scenario.yaml
new file mode 100644 (file)
index 0000000..e978a46
--- /dev/null
@@ -0,0 +1,56 @@
+##############################################################################
+# 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 configuration file defines translation between a short deployment
+# scenario name and an actual deployment scenario configuration file
+##############################################################################
+
+os_ha:
+  configfile: ha_heat_ceilometer_scenario_0.0.1.yaml
+
+os_no-ha:
+  configfile: no-ha_heat_ceilometer_scenario_0.0.1.yaml
+
+os_odl-l3_ha:
+  configfile: no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml
+
+os_odl-l3_no-ha:
+  configfile: no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml
+
+os_odl-l2_ha:
+  configfile: no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml
+
+os_odl-l2_no-ha:
+  configfile: no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml
+
+os_onos_ha:
+  configfile: ha_onos_heat_ceilometer_scenario_0.0.1.yaml
+
+os_onos_no-ha:
+  configfile: no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml
+
+os_kvm_ha:
+  configfile: ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml
+
+os_kvm_no-ha:
+  configfile: no-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml
+
+os_ovs_ha:
+  configfile: ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml
+
+os_ovs_no-ha:
+  configfile: no-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml
+
+os_kvm_ovs_ha:
+  configfile:
+
+os_kvm_ovs_no-ha:
+  configfile: no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml