aboutsummaryrefslogtreecommitdiffstats
path: root/build/f_isoroot
diff options
context:
space:
mode:
authorJonas Bjurel <jonas.bjurel@ericsson.com>2016-09-30 20:28:22 +0200
committerJonas Bjurel <jonas.bjurel@ericsson.com>2016-09-30 20:43:13 +0200
commitaf2db33a0ebab98700c3c03ea84a6ba9b987c5b5 (patch)
tree0b789b555d1d62af4e80aea8d802998a32573ad3 /build/f_isoroot
parent095442c4bdf437531eae2aecd364e74d756757fd (diff)
Preparing the experimental branch for improved Danube CI/CD experimentsexperimental
Fast forwarded to commit:cf93e6ee11c96de090b04196cc96b4a6b0948928 Change-Id: I13d10d870e8ffc7317ab03f8810592d5b2205875 Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
Diffstat (limited to 'build/f_isoroot')
-rw-r--r--build/f_isoroot/Makefile51
-rw-r--r--build/f_isoroot/README16
-rw-r--r--build/f_isoroot/cache.mk37
-rw-r--r--build/f_isoroot/f_bgpvpn-pluginbuild/Makefile91
-rw-r--r--build/f_isoroot/f_bgpvpn-pluginbuild/config.mk12
-rw-r--r--build/f_isoroot/f_bootstrap/Makefile46
-rw-r--r--build/f_isoroot/f_bootstrap/README24
-rwxr-xr-xbuild/f_isoroot/f_bootstrap/post-scripts/00_post_example.sh14
-rwxr-xr-xbuild/f_isoroot/f_bootstrap/post-scripts/03_install_repo.sh34
-rwxr-xr-xbuild/f_isoroot/f_bootstrap/pre-scripts/00_pre_example.sh14
-rw-r--r--build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile91
-rw-r--r--build/f_isoroot/f_collectd-ceilometer-pluginbuild/config.mk13
-rw-r--r--build/f_isoroot/f_collectd-ceilometer-pluginbuild/packages.yaml9
-rw-r--r--build/f_isoroot/f_isolinux/Makefile49
-rw-r--r--build/f_isoroot/f_kscfg/Makefile50
-rw-r--r--build/f_isoroot/f_kscfg/README18
-rw-r--r--build/f_isoroot/f_kscfg/ks.cfg.patch31
-rw-r--r--build/f_isoroot/f_kvm-pluginbuild/Makefile92
-rw-r--r--build/f_isoroot/f_kvm-pluginbuild/config.mk12
-rw-r--r--build/f_isoroot/f_odlpluginbuild/Makefile82
-rw-r--r--build/f_isoroot/f_odlpluginbuild/config.mk16
-rw-r--r--build/f_isoroot/f_onosfwpluginbuild/Makefile90
-rw-r--r--build/f_isoroot/f_onosfwpluginbuild/config.mk11
-rw-r--r--build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile91
-rw-r--r--build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/config.mk12
-rw-r--r--build/f_isoroot/f_repobuild/Makefile91
-rw-r--r--build/f_isoroot/f_repobuild/config.mk13
-rw-r--r--build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml75
-rwxr-xr-xbuild/f_isoroot/f_repobuild/opnfv_mirror_conf.py57
-rwxr-xr-xbuild/f_isoroot/f_repobuild/select_ubuntu_repo.sh40
-rw-r--r--build/f_isoroot/f_vsperfpluginbuild/Makefile92
-rw-r--r--build/f_isoroot/f_vsperfpluginbuild/config.mk12
-rw-r--r--build/f_isoroot/f_yardstick-pluginbuild/Makefile92
-rw-r--r--build/f_isoroot/f_yardstick-pluginbuild/config.mk13
34 files changed, 1491 insertions, 0 deletions
diff --git a/build/f_isoroot/Makefile b/build/f_isoroot/Makefile
new file mode 100644
index 000000000..448f4158c
--- /dev/null
+++ b/build/f_isoroot/Makefile
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+# Add Fuel plugin build targets here
+# Plugins disabled for the Fuel Mitaka uplift. Please re-enable your plugin as you have
+# verified it!
+PLUGINS ?= f_odlpluginbuild f_onosfwpluginbuild f_vsperfpluginbuild f_ovs-nsh-dpdk-pluginbuild f_yardstick-pluginbuild f_kvm-pluginbuild f_bgpvpn-pluginbuild f_collectd-ceilometer-pluginbuild
+#PLUGINS = f_odlpluginbuild f_onosfwpluginbuild f_ovsnfv-dpdk-pluginbuild f_vsperfpluginbuild f_ovs-nsh-dpdk-pluginbuild f_bgpvpn-pluginbuild
+export PLUGINS
+#NON_8-0_REBASED_PLUGINS = f_bgpvpn-pluginbuild
+
+# If the BUILD_FUEL_PLUGINS environment variable is set, only build the plugins
+# indicated therein.
+# Temporarilu disabling f_repobuild that currently have some issues on
+# Fuel Mitaka.
+ifdef BUILD_FUEL_PLUGINS
+export BUILD_FUEL_PLUGINS
+SUBDIRS = f_kscfg f_bootstrap f_isolinux f_repobuild $(BUILD_FUEL_PLUGINS)
+$(warning Overriding plugin build selection to $(BUILD_FUEL_PLUGINS))
+else
+SUBDIRS = f_kscfg f_bootstrap f_isolinux f_repobuild $(PLUGINS)
+endif
+SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
+
+.PHONY: all
+all: $(SUBDIRS)
+
+.PHONY: $(SUBDIRS)
+$(SUBDIRS):
+ @mkdir -p release
+ $(MAKE) -C $@ -f Makefile release
+
+.PHONY: clean $(SUBCLEAN)
+clean: $(SUBCLEAN)
+ @rm -Rf release
+
+$(SUBCLEAN): %.clean:
+ $(MAKE) -C $* -f Makefile clean
+
+.PHONY: release
+release: $(SUBDIRS)
+ @cp -Rvp release/* ../release/isoroot
+
+include cache.mk
diff --git a/build/f_isoroot/README b/build/f_isoroot/README
new file mode 100644
index 000000000..eb54c0827
--- /dev/null
+++ b/build/f_isoroot/README
@@ -0,0 +1,16 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+This is to (a) replace/patch existing Fuel ISO files as well
+as adding new information directly into the ISO structure
+
+Please separate changes into "patches" and new content into
+"additions". Both directories will be anchored at the ISO file
+root.
diff --git a/build/f_isoroot/cache.mk b/build/f_isoroot/cache.mk
new file mode 100644
index 000000000..2df3b6bd1
--- /dev/null
+++ b/build/f_isoroot/cache.mk
@@ -0,0 +1,37 @@
+##############################################################################
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#
+# This file is only meant for a top Makefile which is only calling its
+# own SUBDIRS, without building any cachable artifact by itself.
+#############################################################################
+
+# Call sub caches
+SUBGETCACHE = $(addsuffix .getcache,$(SUBDIRS))
+$(SUBGETCACHE): %.getcache:
+ $(MAKE) -C $* -f Makefile get-cache
+
+SUBPUTCACHE = $(addsuffix .putcache,$(SUBDIRS))
+$(SUBPUTCACHE): %.putcache:
+ $(MAKE) -C $* -f Makefile put-cache
+
+SUBCLEANCACHE = $(addsuffix .cleancache,$(SUBDIRS))
+$(SUBCLEANCACHE): %.cleancache:
+ $(MAKE) -C $* -f Makefile clean-cache
+
+.PHONY: get-cache
+get-cache: $(SUBGETCACHE)
+
+.PHONY: put-cache
+put-cache: $(SUBPUTCACHE)
+
+.PHONY: clean-cache
+clean-cache: $(SUBCLEANCACHE)
diff --git a/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile b/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile
new file mode 100644
index 000000000..8ce28fcf8
--- /dev/null
+++ b/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile
@@ -0,0 +1,91 @@
+##############################################################################
+# 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
+##############################################################################
+
+TOP := $(shell pwd)
+
+############################################################################
+# BEGIN of Include definitions
+#
+include config.mk
+#
+# END Include definitions
+#############################################################################
+
+
+.PHONY: all
+all: .bgpvpnbuild
+
+.PHONY: clean
+clean:
+ @rm -f .bgpvpnbuild ../release/opnfv/bgpvpn*.rpm bgpvpn*.rpm
+ @rm -f $(BUILD_BASE)/gitinfo_bgpvpnplugin.txt gitinfo_bgpvpnplugin.txt
+
+.PHONY: release
+release:.bgpvpnbuild
+ @rm -f ../release/opnfv/bgpvpn*.rpm
+ @mkdir -p ../release/bgpvpn
+ @cp bgpvpn*.rpm ../release/opnfv/
+ cp gitinfo_bgpvpnplugin.txt $(BUILD_BASE)
+
+.bgpvpnbuild:
+ rm -rf fuel-plugin-bgpvpn
+ git clone $(BGPVPN_REPO)
+ cd fuel-plugin-bgpvpn; \
+ git checkout $(BGPVPN_BRANCH); \
+ if [ ! -z $(BGPVPN_CHANGE) ]; then \
+ git fetch $(BGPVPN_REPO) $(BGPVPN_CHANGE); \
+ git checkout FETCH_HEAD; \
+ fi
+ fpb --debug --build fuel-plugin-bgpvpn/
+ mv fuel-plugin-bgpvpn/bgpvpn*.rpm .
+ $(REPOINFO) -r . > gitinfo_bgpvpnplugin.txt
+ rm -rf fuel-plugin-bgpvpn
+ touch .bgpvpnbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+
+# Create a unique hash to be used for getting and putting cache, based on:
+# - The SHA1 hash of the HEAD on the plugin repo's $(BGPVPN_BRANCH)
+# - The contents of this Makefile
+.cacheid:
+ @if [ ! -z $(BGPVPN_CHANGE) ]; then \
+ $(CACHETOOL) getcommitid $(BGPVPN_REPO) $(BGPVPN_CHANGE) > .cachedata; \
+ else \
+ $(CACHETOOL) getcommitid $(BGPVPN_REPO) $(BGPVPN_BRANCH) > .cachedata; \
+ fi
+ sha1sum Makefile >> .cachedata
+ sha1sum config.mk >> .cachedata
+ echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
+ cat .cachedata | $(CACHETOOL) getid > .cacheid
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ rm -f .cachedata .cacheid
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache: .cacheid
+ @if $(CACHETOOL) check $(shell cat .cacheid); then \
+ $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
+ else \
+ echo "No cache item found for $(shell cat .cacheid)" ;\
+ exit 0;\
+ fi
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache: .cacheid
+ @tar cf - .bgpvpnbuild bgpvpn*.rpm gitinfo_bgpvpnplugin.txt | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_bgpvpn-pluginbuild/config.mk b/build/f_isoroot/f_bgpvpn-pluginbuild/config.mk
new file mode 100644
index 000000000..ba6fb73ff
--- /dev/null
+++ b/build/f_isoroot/f_bgpvpn-pluginbuild/config.mk
@@ -0,0 +1,12 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+BGPVPN_BRANCH?=master
+BGPVPN_REPO?="https://github.com/openstack/fuel-plugin-bgpvpn.git"
+BGPVPN_CHANGE?=3349842af5724be63a74a82c9060848d9d3d299e
diff --git a/build/f_isoroot/f_bootstrap/Makefile b/build/f_isoroot/f_bootstrap/Makefile
new file mode 100644
index 000000000..1c08405ab
--- /dev/null
+++ b/build/f_isoroot/f_bootstrap/Makefile
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+TOP := $(shell pwd)
+
+.PHONY: all
+all:
+ @mkdir -p release/opnfv/bootstrap/pre.d
+ @mkdir -p release/opnfv/bootstrap/post.d
+ @mkdir -p release/usr/local/sbin
+ @cp pre-scripts/* release/opnfv/bootstrap/pre.d
+ @cp post-scripts/* release/opnfv/bootstrap/post.d
+
+.PHONY: clean
+clean:
+ @rm -rf release
+
+.PHONY: release
+release:all
+ @cp -Rvp release/* ../release
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ @echo "clean-cache not implemented"
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache:
+ @echo "get-cache not implemented"
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache:
+ @echo "put-cache not implemented"
diff --git a/build/f_isoroot/f_bootstrap/README b/build/f_isoroot/f_bootstrap/README
new file mode 100644
index 000000000..5da954ca4
--- /dev/null
+++ b/build/f_isoroot/f_bootstrap/README
@@ -0,0 +1,24 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+This function modifies the adds hooks to the beginning and end of
+/usr/local/sbin/bootstrap_admin_nodes.sh, which is run as the
+last post step from ks.cfg
+
+This enables other functions to place scripts into two directories
+run either at the beginning or the end of the bootstrap procedure:
+
+ /opt/opnfv/bootstrap/pre.d
+ /opt/opnfv/bootstrap/post.d
+
+These will be run in lexical order at pre or post.
+
+CI note: Using pre.d, it would be possible to "inject" a pre-defined
+astute.yaml for Fuel.
diff --git a/build/f_isoroot/f_bootstrap/post-scripts/00_post_example.sh b/build/f_isoroot/f_bootstrap/post-scripts/00_post_example.sh
new file mode 100755
index 000000000..4dfeca58e
--- /dev/null
+++ b/build/f_isoroot/f_bootstrap/post-scripts/00_post_example.sh
@@ -0,0 +1,14 @@
+#/bin/sh
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+date
+echo "This is an example file run at post-bootstrap."
+exit 0
diff --git a/build/f_isoroot/f_bootstrap/post-scripts/03_install_repo.sh b/build/f_isoroot/f_bootstrap/post-scripts/03_install_repo.sh
new file mode 100755
index 000000000..be17e7e0a
--- /dev/null
+++ b/build/f_isoroot/f_bootstrap/post-scripts/03_install_repo.sh
@@ -0,0 +1,34 @@
+#/bin/sh
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+echo "Installing pre-build repo"
+if [ ! -d /opt/opnfv/nailgun ]; then
+ echo "Error - found no repo!"
+ exit 1
+fi
+
+mkdir -p /var/www/nailgun
+mv /opt/opnfv/nailgun/* /var/www/nailgun
+if [ $? -ne 0 ]; then
+ echo "Error moving repos to their correct location!"
+ exit 1
+fi
+rmdir /opt/opnfv/nailgun
+if [ $? -ne 0 ]; then
+ echo "Error removing /opt/opnfv/nailgun directory!"
+ exit 1
+fi
+mv /opt/opnfv/fuel_bootstrap_cli.yaml /etc/fuel-bootstrap-cli/fuel_bootstrap_cli.yaml
+if [ $? -ne 0 ]; then
+ echo "Error moving bootstrap image configuration!"
+ exit 1
+fi
+echo "Done installing pre-build repo"
diff --git a/build/f_isoroot/f_bootstrap/pre-scripts/00_pre_example.sh b/build/f_isoroot/f_bootstrap/pre-scripts/00_pre_example.sh
new file mode 100755
index 000000000..3eaffa523
--- /dev/null
+++ b/build/f_isoroot/f_bootstrap/pre-scripts/00_pre_example.sh
@@ -0,0 +1,14 @@
+#/bin/sh
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+date
+echo "This is an example file run at pre-bootstrap."
+exit 0
diff --git a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile
new file mode 100644
index 000000000..17bc36d91
--- /dev/null
+++ b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile
@@ -0,0 +1,91 @@
+##############################################################################
+# Copyright (c) 2016 Ericsson AB and others.
+# jonas.bjurel@eicsson.com
+# ruijing.guo@intel.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
+##############################################################################
+
+TOP := $(shell pwd)
+
+############################################################################
+# BEGIN of Include definitions
+#
+include config.mk
+#
+# END Include definitions
+#############################################################################
+
+.PHONY: all
+all: .fastpathmetrics
+
+.PHONY: clean
+clean:
+ @rm -f .fastpathmetrics ../release/opnfv/fuel-plugin-collectd-ceilometer-*.rpm fuel-plugin-collectd-ceilometer-*.rpm
+ @rm -f $(BUILD_BASE)/gitinfo_collectd-ceilometer-plugin.txt gitinfo_collectd-ceilometer-plugin.txt
+
+.PHONY: release
+release:.fastpathmetrics
+ @rm -f ../release/opnfv/fuel-plugin-collectd-ceilometer-*.rpm
+ @mkdir -p ../release/opnfv
+ @cp fuel-plugin-collectd-ceilometer*.rpm ../release/opnfv/
+ cp gitinfo_collectd-ceilometer-plugin.txt $(BUILD_BASE)
+
+.fastpathmetrics:
+ @rm -rf fastpathmetrics
+ git clone $(COLLECTD_CEILOMETER_REPO)
+ cd fastpathmetrics; \
+ git checkout $(COLLECTD_CEILOMETER_BRANCH); \
+ if [ ! -z $(COLLECTD_CEILOMETER_CHANGE) ]; then \
+ git fetch $(COLLECTD_CEILOMETER_REPO) $(COLLECTD_CEILOMETER_CHANGE); \
+ git checkout FETCH_HEAD; \
+ fi
+ fpb --debug --build fastpathmetrics/src/fuel-plugin
+ @mv fastpathmetrics/src/fuel-plugin/fuel-plugin-collectd-ceilometer*.rpm .
+ $(REPOINFO) -r . > gitinfo_collectd-ceilometer-plugin.txt
+ @rm -rf fastpathmetrics
+ @touch .fastpathmetrics
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+
+# Create a unique hash to be used for getting and putting cache, based on:
+# - The SHA1 hash of the HEAD on the plugin repo's $(COLLECTD_CEILOMETER_BRANCH)
+# - The contents of this Makefile
+.cacheid:
+ @if [ ! -z $(COLLECTD_CEILOMETER_CHANGE) ]; then \
+ $(CACHETOOL) getcommitid $(COLLECTD_CEILOMETER_REPO) $(COLLECTD_CEILOMETER_CHANGE) > .cachedata; \
+ else \
+ $(CACHETOOL) getcommitid $(COLLECTD_CEILOMETER_REPO) $(COLLECTD_CEILOMETER_BRANCH) > .cachedata; \
+ fi
+ @sha1sum Makefile | awk {'print $$1'} >> .cachedata
+ @sha1sum config.mk | awk {'print $$1'} >> .cachedata
+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
+ @cat .cachedata | $(CACHETOOL) getid > .cacheid
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ @rm -f .cachedata .cacheid
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache: .cacheid
+ @if $(CACHETOOL) check $(shell cat .cacheid); then \
+ $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
+ else \
+ echo "No cache item found for $(shell cat .cacheid)" ;\
+ exit 0;\
+ fi
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache: .cacheid
+ @tar cf - .fastpathmetrics fuel-plugin-collectd-ceilometer*.rpm gitinfo_collectd-ceilometer-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/config.mk b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/config.mk
new file mode 100644
index 000000000..0106213d3
--- /dev/null
+++ b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/config.mk
@@ -0,0 +1,13 @@
+##############################################################################
+# Copyright (c) 2016 Ericsson AB and others.
+# jonas.bjurel@eicsson.com
+# ruijing.guo@intel.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
+##############################################################################
+
+COLLECTD_CEILOMETER_BRANCH?=3ddf95235ef62de5fb9a520b3aa8f120518b0077
+COLLECTD_CEILOMETER_REPO?=http://gerrit.opnfv.org/gerrit/fastpathmetrics
+COLLECTD_CEILOMETER_CHANGE?=
diff --git a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/packages.yaml b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/packages.yaml
new file mode 100644
index 000000000..1ba7201f4
--- /dev/null
+++ b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/packages.yaml
@@ -0,0 +1,9 @@
+##############################################################################
+# Copyright (c) 2016 OPNFV.
+# 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
+##############################################################################
+packages:
+ - "collectd"
diff --git a/build/f_isoroot/f_isolinux/Makefile b/build/f_isoroot/f_isolinux/Makefile
new file mode 100644
index 000000000..f3e09b234
--- /dev/null
+++ b/build/f_isoroot/f_isolinux/Makefile
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2016 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+TOP := $(shell pwd)
+
+.PHONY: all
+all: isolinux.cfg.iso
+ @mkdir -p release/isolinux
+ grep -q OpenStack_Fuel isolinux.cfg.iso
+ sed "s/OpenStack_Fuel/$(PRODNO)_$(REVSTATE)/g" isolinux.cfg.iso > isolinux.cfg
+ @cp isolinux.cfg release/isolinux/isolinux.cfg
+ @cp isolinux.cfg.iso release/isolinux/isolinux.cfg.orig
+
+isolinux.cfg.iso:
+ 7z -so x $(ISOCACHE) isolinux/isolinux.cfg > isolinux.cfg.iso
+
+.PHONY: clean
+clean:
+ @rm -rf release isolinux.cfg.iso isolinux.cfg
+
+.PHONY: release
+release: all
+ @cp -Rvp release/* ../release
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ @echo "clean-cache not implemented"
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache:
+ @echo "get-cache not implemented"
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache:
+ @echo "put-cache not implemented"
diff --git a/build/f_isoroot/f_kscfg/Makefile b/build/f_isoroot/f_kscfg/Makefile
new file mode 100644
index 000000000..cfd433f8d
--- /dev/null
+++ b/build/f_isoroot/f_kscfg/Makefile
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+TOP := $(shell pwd)
+
+.PHONY: all
+all: ks.cfg.iso
+ @mkdir -p release
+ grep -q OpenStack_Fuel ks.cfg.iso
+ sed "s/OpenStack_Fuel/$(PRODNO)_$(REVSTATE)/g" ks.cfg.iso > ks.cfg
+ /usr/bin/patch -p0 < ks.cfg.patch
+ @cp ks.cfg.iso release/ks.cfg.orig
+ @cp ks.cfg release/ks.cfg
+
+ks.cfg.iso:
+ 7z -so x $(ISOCACHE) ks.cfg > ks.cfg.iso
+
+.PHONY: clean
+clean:
+ @rm -rf release ks.cfg.iso ks.cfg
+
+.PHONY: release
+release: all
+ @cp -Rvp release/* ../release
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ @echo "clean-cache not implemented"
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache:
+ @echo "get-cache not implemented"
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache:
+ @echo "put-cache not implemented"
diff --git a/build/f_isoroot/f_kscfg/README b/build/f_isoroot/f_kscfg/README
new file mode 100644
index 000000000..c85efde77
--- /dev/null
+++ b/build/f_isoroot/f_kscfg/README
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+This function modifies the ks.cfg of the Fuel master to
+make copy whatever is in the top level opnfv directory
+of the ISO (populated by, for example, f_configfrontend) to
+/opt/opnfv. In the end this is where the installation
+parts will evolve.
+
+This is also the place to force the installation to overwrite
+the disk (set forceformat="yes" instead of "no").
diff --git a/build/f_isoroot/f_kscfg/ks.cfg.patch b/build/f_isoroot/f_kscfg/ks.cfg.patch
new file mode 100644
index 000000000..a6840e479
--- /dev/null
+++ b/build/f_isoroot/f_kscfg/ks.cfg.patch
@@ -0,0 +1,31 @@
+*** /dev/null 2016-04-26 10:10:11.481587709 +0200
+--- ks.cfg 2016-04-26 10:10:11.481587709 +0200
+***************
+*** 579,584 ****
+--- 579,592 ----
+
+ EOF
+
++ ######### OPNFV addition BEGIN ############
++ # Copy data into /opt/opnfv
++ # TODO: This ought to be a package instead!
++ mkdir -p /opt/opnfv
++ cp -r ${SOURCE}/opnfv /opt
++ cp ${SOURCE}/gitinfo.txt /
++ ######### OPNFV addition END ############
++
+ # Unmounting source
+ umount -f ${SOURCE}
+ rm -rf ${SOURCE}
+***************
+*** 647,650 ****
+ /etc/sysconfig/network-scripts/ifcfg-${ifname%%:*} > \
+ /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-${adminif}
+ fi
+! %end
+\ No newline at end of file
+--- 655,658 ----
+ /etc/sysconfig/network-scripts/ifcfg-${ifname%%:*} > \
+ /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-${adminif}
+ fi
+! %end
diff --git a/build/f_isoroot/f_kvm-pluginbuild/Makefile b/build/f_isoroot/f_kvm-pluginbuild/Makefile
new file mode 100644
index 000000000..81309ef87
--- /dev/null
+++ b/build/f_isoroot/f_kvm-pluginbuild/Makefile
@@ -0,0 +1,92 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+TOP := $(shell pwd)
+
+############################################################################
+# BEGIN of Include definitions
+#
+include config.mk
+#
+# END Include definitions
+#############################################################################
+
+.PHONY: all
+all: .kvmbuild
+
+.PHONY: clean
+clean:
+ @rm -f .kvmbuild ../release/opnfv/fuel-plugin-kvm*.rpm fuel-plugin-kvm*.rpm
+ @rm -f $(BUILD_BASE)/gitinfo_kvm-plugin.txt gitinfo_kvm-plugin.txt
+
+.PHONY: release
+release:.kvmbuild
+ @rm -f ../release/opnfv/fuel-plugin-kvm*.rpm
+ @mkdir -p ../release/opnfv
+ @cp fuel-plugin-kvm*.rpm ../release/opnfv/
+ cp gitinfo_kvm-plugin.txt $(BUILD_BASE)
+
+.kvmbuild:
+ @rm -rf kvmfornfv
+ ../../docker/ubuntu-builder/install_docker.sh
+ git clone $(KVMFORNFV_REPO)
+ cd kvmfornfv; \
+ git checkout $(KVMFORNFV_BRANCH); \
+ if [ ! -z $(KVMFORNFV_CHANGE) ]; then \
+ git fetch $(KVMFORNFV_REPO) $(KVMFORNFV_CHANGE); \
+ git checkout FETCH_HEAD; \
+ fi
+ cd kvmfornfv/fuel-plugin; \
+ INCLUDE_DEPENDENCIES=true fpb --debug --build ./
+ @mv kvmfornfv/fuel-plugin/fuel-plugin-kvm*.rpm .
+ $(REPOINFO) -r . > gitinfo_kvm-plugin.txt
+ @rm -rf kvmfornfv
+ @touch .kvmbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+
+# Create a unique hash to be used for getting and putting cache, based on:
+# - The SHA1 hash of the HEAD on the plugin repo's $(KVMFORNFV_BRANCH)
+# - The contents of this Makefile
+.cacheid:
+ @if [ ! -z $(KVMFORNFV_CHANGE) ]; then \
+ $(CACHETOOL) getcommitid $(KVMFORNFV_REPO) $(KVMFORNFV_CHANGE) > .cachedata; \
+ else \
+ $(CACHETOOL) getcommitid $(KVMFORNFV_REPO) $(KVMFORNFV_BRANCH) > .cachedata; \
+ fi
+ @sha1sum Makefile | awk {'print $$1'} >> .cachedata
+ @sha1sum config.mk | awk {'print $$1'} >> .cachedata
+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
+ @cat .cachedata | $(CACHETOOL) getid > .cacheid
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ @rm -f .cachedata .cacheid
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache: .cacheid
+ @if $(CACHETOOL) check $(shell cat .cacheid); then \
+ $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
+ else \
+ echo "No cache item found for $(shell cat .cacheid)" ;\
+ exit 0;\
+ fi
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache: .cacheid
+ @tar cf - .kvmbuild fuel-plugin-kvm*.rpm gitinfo_kvm-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_kvm-pluginbuild/config.mk b/build/f_isoroot/f_kvm-pluginbuild/config.mk
new file mode 100644
index 000000000..eaef3d414
--- /dev/null
+++ b/build/f_isoroot/f_kvm-pluginbuild/config.mk
@@ -0,0 +1,12 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+KVMFORNFV_BRANCH=stable/colorado
+KVMFORNFV_REPO=https://gerrit.opnfv.org/gerrit/kvmfornfv
+KVMFORNFV_CHANGE=e6588d1d59d7ac24f25f644650e6845561dd441b
diff --git a/build/f_isoroot/f_odlpluginbuild/Makefile b/build/f_isoroot/f_odlpluginbuild/Makefile
new file mode 100644
index 000000000..bf811f25f
--- /dev/null
+++ b/build/f_isoroot/f_odlpluginbuild/Makefile
@@ -0,0 +1,82 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# mskalski@mirantis.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
+##############################################################################
+
+TOP := $(shell pwd)
+
+include config.mk
+
+.PHONY: all
+all: .odlbuild
+
+.PHONY: clean
+clean:
+ @rm -f .odlbuild ../release/opnfv/opendaylight*.rpm opendaylight*.rpm
+ @rm -f $(BUILD_BASE)/gitinfo_odlplugin.txt gitinfo_odlplugin.txt
+ @rm -rf fuel-plugins
+
+.PHONY: release
+release:.odlbuild
+ @rm -f ../release/opnfv/opendaylight*.rpm
+ @mkdir -p ../release/opnfv
+ @cp opendaylight*.rpm ../release/opnfv/
+ cp gitinfo_odlplugin.txt $(BUILD_BASE)
+.odlbuild:
+ rm -rf fuel-plugin-opendaylight
+ git clone -b $(FUEL_PLUGIN_ODL_BRANCH) $(FUEL_PLUGIN_ODL_REPO)
+ cd fuel-plugin-opendaylight; \
+ if [ -n $(FUEL_PLUGIN_ODL_CHANGE) ]; then \
+ git checkout $(FUEL_PLUGIN_ODL_CHANGE); \
+ fi
+ fpb --debug --build fuel-plugin-opendaylight/
+ mv fuel-plugin-opendaylight/opendaylight*.rpm .
+ $(REPOINFO) -r . > gitinfo_odlplugin.txt
+ rm -rf fuel-plugin-opendaylight
+ touch .odlbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+
+# Create a unique hash to be used for getting and putting cache, based on:
+# - The SHA1 hash of the HEAD on the plugin repo's $(FUEL_PLUGIN_ODL_BRANCH)
+# - The contents of this Makefile
+.cacheid:
+ if [ -n $(FUEL_PLUGIN_ODL_CHANGE) ]; then \
+ $(CACHETOOL) getcommitid $(FUEL_PLUGIN_ODL_REPO) $(FUEL_PLUGIN_ODL_CHANGE) > .cachedata; \
+ else \
+ $(CACHETOOL) getcommitid $(FUEL_PLUGIN_ODL_REPO) $(FUEL_PLUGIN_ODL_BRANCH) > .cachedata; \
+ fi
+ @sha1sum Makefile | awk {'print $$1'} >> .cachedata
+ @sha1sum config.mk | awk {'print $$1'} >> .cachedata
+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
+ cat .cachedata | $(CACHETOOL) getid > .cacheid
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ rm -f .cachedata .cacheid
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache: .cacheid
+ @if $(CACHETOOL) check $(shell cat .cacheid); then \
+ $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
+ else \
+ echo "No cache item found for $(shell cat .cacheid)" ;\
+ exit 0;\
+ fi
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache: .cacheid
+ @tar cf - .odlbuild opendaylight*.rpm gitinfo_odlplugin.txt | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_odlpluginbuild/config.mk b/build/f_isoroot/f_odlpluginbuild/config.mk
new file mode 100644
index 000000000..7074ee2e0
--- /dev/null
+++ b/build/f_isoroot/f_odlpluginbuild/config.mk
@@ -0,0 +1,16 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+FUEL_PLUGIN_ODL_BRANCH ?= master
+FUEL_PLUGIN_ODL_CHANGE ?= 58cf41ff4e9ed928bf024b166776b9df1a2e517b
+FUEL_PLUGIN_ODL_REPO ?= https://github.com/openstack/fuel-plugin-opendaylight.git
+
+export ODL_TARBALL_LOCATION?=https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribution-karaf/0.4.3-Beryllium-SR3/distribution-karaf-0.4.3-Beryllium-SR3.tar.gz
+export ODL_VERSION_NUMBER?=0.4.3
+export ODL_BORON_TARBALL_LOCATION?=http://artifacts.opnfv.org/fuel/colorado/vendor/distribution-karaf-0.5.0-Boron-RC3.5.tar.gz
diff --git a/build/f_isoroot/f_onosfwpluginbuild/Makefile b/build/f_isoroot/f_onosfwpluginbuild/Makefile
new file mode 100644
index 000000000..02ba02951
--- /dev/null
+++ b/build/f_isoroot/f_onosfwpluginbuild/Makefile
@@ -0,0 +1,90 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+TOP := $(shell pwd)
+
+############################################################################
+# BEGIN of Include definitions
+#
+include config.mk
+#
+# END Include definitions
+#############################################################################
+
+.PHONY: all
+all: .onosbuild
+
+.PHONY: clean
+clean:
+ @rm -f .onosbuild ../release/opnfv/onos*.rpm onos*.rpm
+ @rm -f $(BUILD_BASE)/gitinfo_onos-plugin.txt gitinfo_onos-plugin.txt
+
+.PHONY: release
+release:.onosbuild
+ @rm -f ../release/opnfv/onos*.rpm
+ @mkdir -p ../release/opnfv
+ @cp onos*.rpm ../release/opnfv/
+ cp gitinfo_onos-plugin.txt $(BUILD_BASE)
+
+.onosbuild:
+ @rm -rf fuel-plugin-onos
+ git clone $(ONOS_REPO)
+ cd fuel-plugin-onos; \
+ git checkout $(ONOS_BRANCH); \
+ if [ ! -z $(ONOS_CHANGE) ]; then \
+ git fetch $(ONOS_REPO) $(ONOS_CHANGE); \
+ git checkout FETCH_HEAD; \
+ fi
+ INCLUDE_DEPENDENCIES=true fpb --debug --build fuel-plugin-onos/
+ @mv fuel-plugin-onos/onos*.rpm .
+ $(REPOINFO) -r . > gitinfo_onos-plugin.txt
+ @rm -rf fuel-plugin-onos
+ @touch .onosbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+
+# Create a unique hash to be used for getting and putting cache, based on:
+# - The SHA1 hash of the HEAD on the plugin repo's $(ONOS_BRANCH)
+# - The contents of this Makefile
+.cacheid:
+ @if [ ! -z $(ONOS_CHANGE) ]; then \
+ $(CACHETOOL) getcommitid $(ONOS_REPO) $(ONOS_CHANGE) > .cachedata; \
+ else \
+ $(CACHETOOL) getcommitid $(ONOS_REPO) $(ONOS_BRANCH) > .cachedata; \
+ fi
+ @sha1sum Makefile | awk {'print $$1'} >> .cachedata
+ @sha1sum config.mk | awk {'print $$1'} >> .cachedata
+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
+ @cat .cachedata | $(CACHETOOL) getid > .cacheid
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ @rm -f .cachedata .cacheid
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache: .cacheid
+ @if $(CACHETOOL) check $(shell cat .cacheid); then \
+ $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
+ else \
+ echo "No cache item found for $(shell cat .cacheid)" ;\
+ exit 0;\
+ fi
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache: .cacheid
+ @tar cf - .onosbuild onos*.rpm gitinfo_onos-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_onosfwpluginbuild/config.mk b/build/f_isoroot/f_onosfwpluginbuild/config.mk
new file mode 100644
index 000000000..19d9d00d0
--- /dev/null
+++ b/build/f_isoroot/f_onosfwpluginbuild/config.mk
@@ -0,0 +1,11 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+ONOS_BRANCH=Mitaka
+ONOS_REPO=git://git.openstack.org/openstack/fuel-plugin-onos
diff --git a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile
new file mode 100644
index 000000000..2d0d202af
--- /dev/null
+++ b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile
@@ -0,0 +1,91 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+TOP := $(shell pwd)
+
+############################################################################
+# BEGIN of Include definitions
+#
+include config.mk
+#
+# END Include definitions
+#############################################################################
+
+.PHONY: all
+all: .ovsbuild
+
+.PHONY: clean
+clean:
+ @rm -f .ovsbuild ../release/opnfv/fuel-plugin-ovs-*.rpm fuel-plugin-ovs-*.rpm
+ @rm -f $(BUILD_BASE)/gitinfo_ovs-nsh-dpdk-plugin.txt gitinfo_ovs-nsh-dpdk-plugin.txt
+
+.PHONY: release
+release:.ovsbuild
+ @rm -f ../release/opnfv/fuel-plugin-ovs-*.rpm
+ @mkdir -p ../release/opnfv
+ @cp fuel-plugin-ovs*.rpm ../release/opnfv/
+ cp gitinfo_ovs-nsh-dpdk-plugin.txt $(BUILD_BASE)
+
+.ovsbuild:
+ @rm -rf fuel-plugin-ovs
+ ../../docker/ubuntu-builder/install_docker.sh
+ git clone $(OVS_NSH_DPDK_REPO)
+ cd fuel-plugin-ovs; \
+ git checkout $(OVS_NSH_DPDK_BRANCH); \
+ if [ ! -z $(OVS_NSH_DPDK_CHANGE) ]; then \
+ git fetch $(OVS_NSH_DPDK_REPO) $(OVS_NSH_DPDK_CHANGE); \
+ git checkout FETCH_HEAD; \
+ fi
+ INCLUDE_DEPENDENCIES=true fpb --debug --build fuel-plugin-ovs/
+ @mv fuel-plugin-ovs/fuel-plugin-ovs*.rpm .
+ $(REPOINFO) -r . > gitinfo_ovs-nsh-dpdk-plugin.txt
+ @rm -rf fuel-plugin-ovs
+ @touch .ovsbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+
+# Create a unique hash to be used for getting and putting cache, based on:
+# - The SHA1 hash of the HEAD on the plugin repo's $(OVS_NSH_DPDK_BRANCH)
+# - The contents of this Makefile
+.cacheid:
+ @if [ ! -z $(OVS_NSH_DPDK_CHANGE) ]; then \
+ $(CACHETOOL) getcommitid $(OVS_NSH_DPDK_REPO) $(OVS_NSH_DPDK_CHANGE) > .cachedata; \
+ else \
+ $(CACHETOOL) getcommitid $(OVS_NSH_DPDK_REPO) $(OVS_NSH_DPDK_BRANCH) > .cachedata; \
+ fi
+ @sha1sum Makefile | awk {'print $$1'} >> .cachedata
+ @sha1sum config.mk | awk {'print $$1'} >> .cachedata
+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
+ @cat .cachedata | $(CACHETOOL) getid > .cacheid
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ @rm -f .cachedata .cacheid
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache: .cacheid
+ @if $(CACHETOOL) check $(shell cat .cacheid); then \
+ $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
+ else \
+ echo "No cache item found for $(shell cat .cacheid)" ;\
+ exit 0;\
+ fi
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache: .cacheid
+ @tar cf - .ovsbuild fuel-plugin-ovs*.rpm gitinfo_ovs-nsh-dpdk-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/config.mk b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/config.mk
new file mode 100644
index 000000000..8effbd26b
--- /dev/null
+++ b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/config.mk
@@ -0,0 +1,12 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+OVS_NSH_DPDK_BRANCH?=074aadce66ef3cf322a00a3cff5c57deb84088b5
+OVS_NSH_DPDK_REPO?=https://review.openstack.org/openstack/fuel-plugin-ovs
+OVS_NSH_DPDK_CHANGE?=
diff --git a/build/f_isoroot/f_repobuild/Makefile b/build/f_isoroot/f_repobuild/Makefile
new file mode 100644
index 000000000..7c6b16304
--- /dev/null
+++ b/build/f_isoroot/f_repobuild/Makefile
@@ -0,0 +1,91 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# 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
+##############################################################################
+
+SHELL := /bin/bash
+TOP := $(shell pwd)
+TMP_ROOT_DIR := $(shell echo "$(MIRROR_UBUNTU_ROOT)" | cut -d "/" -f2)
+
+include ../../config.mk
+include config.mk
+
+export MOS_VERSION
+export OPENSTACK_VERSION
+
+.PHONY: all
+all: nailgun
+
+nailgun:
+ sudo apt-get install -y git libxml2-dev libxslt-dev python-dev python-pip libz-dev libyaml-dev createrepo python-yaml
+ rm -Rf nailgun
+ sudo mkdir -p /var/www/nailgun
+ git clone $(FUEL_MIRROR_REPO)
+ cd fuel-mirror && git checkout -q $(FUEL_MIRROR_COMMIT)
+ sudo pip install -U -r ./fuel-mirror/requirements.txt
+ sudo pip install ./fuel-mirror
+ sudo pip install ./fuel-mirror/contrib/fuel_mirror
+ ./opnfv_mirror_conf.py
+ sudo fuel-mirror --debug --config ./opnfv-config.yaml create --group ubuntu --pattern=ubuntu
+ sudo chmod -R 755 /var/www/nailgun
+ cp -Rp /var/www/nailgun .
+ # On the end we want to have ubuntu repository in mirrors/ubuntu directory
+ -if [ "$(MIRROR_UBUNTU_ROOT)" != "/ubuntu/" ]; then \
+ mkdir -p nailgun/mirrors/ubuntu;\
+ mv nailgun/mirrors$(MIRROR_UBUNTU_ROOT)* nailgun/mirrors/ubuntu;\
+ [ "$(MIRROR_UBUNTU_ROOT)" != "/" ] && rm -rf nailgun/mirrors/$(TMP_ROOT_DIR);\
+ fi
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
+
+.PHONY: clean
+clean:
+ @rm -rf ../release/opnfv/nailgun nailgun fuel-mirror opnfv-config.yaml ubuntu.yaml
+
+.PHONY: release
+release:nailgun
+ @rm -Rf ../release/opnfv/nailgun
+ @mkdir -p ../release/opnfv
+ @cp -Rp nailgun ../release/opnfv/nailgun
+ @cp fuel_bootstrap_cli.yaml ../release/opnfv/
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+# Create a unique hash to be used for getting and putting cache, based on:
+# - Year and week (causing the cache to be rebuilt weekly)
+# - The contents of this Makefile
+.cacheid:
+ date +"Repocache %G%V" > .cachedata
+ sha1sum Makefile >> .cachedata
+ sha1sum config.mk >> .cachedata
+ $(CACHETOOL) packages >> .cachedata
+ echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
+ cat .cachedata | $(CACHETOOL) getid > .cacheid
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ rm -f .cachedata .cacheid
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache: .cacheid
+ @if $(CACHETOOL) check $(shell cat .cacheid); then \
+ $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
+ else \
+ echo "No cache item found for $(shell cat .cacheid)" ;\
+ exit 0;\
+ fi
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache: .cacheid
+ @tar cf - nailgun | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_repobuild/config.mk b/build/f_isoroot/f_repobuild/config.mk
new file mode 100644
index 000000000..d81732849
--- /dev/null
+++ b/build/f_isoroot/f_repobuild/config.mk
@@ -0,0 +1,13 @@
+##############################################################################
+# Copyright (c) 2016 Ericsson AB and others.
+# mskalski@mirantis.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
+##############################################################################
+
+FUEL_MIRROR_REPO?=https://github.com/openstack/fuel-mirror
+# Point to the commit where 302 redirects are handled
+# https://bugs.launchpad.net/fuel/mitaka/+bug/1593674
+FUEL_MIRROR_COMMIT?=192a3d9f8f993afb12c5108dd9339c6688c23e11
diff --git a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
new file mode 100644
index 000000000..fcf4257f1
--- /dev/null
+++ b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
@@ -0,0 +1,75 @@
+##############################################################################
+# Copyright (c) 2015,2016 Ericsson AB and others.
+# mskalski@mirantis.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
+##############################################################################
+---
+ root_ssh_authorized_file: /root/.ssh/id_rsa.pub
+ extend_kopts: "biosdevname=0 net.ifnames=1 debug ignore_loglevel log_buf_len=10M print_fatal_signals=1 LOGLEVEL=8"
+ ubuntu_release: trusty
+ extra_dirs:
+ - /usr/share/fuel_bootstrap_cli/files/trusty
+ output_dir: /tmp/
+ kernel_flavor: linux-image-generic-lts-trusty
+ packages:
+ - fuel-agent
+ - hwloc
+ - hpsa-dkms
+ - i40e-dkms
+ - linux-firmware
+ - linux-firmware-nonfree
+ - linux-headers-generic
+ - live-boot
+ - live-boot-initramfs-tools
+ - mc
+ - mcollective
+ - msmtp-mta
+ - multipath-tools
+ - multipath-tools-boot
+ - nailgun-agent
+ - nailgun-mcagents
+ - network-checker
+ - ntp
+ - openssh-client
+ - openssh-server
+ - squashfs-tools
+ - ubuntu-minimal
+ - vim
+ - wget
+ - xz-utils
+ bootstrap_images_dir: /var/www/nailgun/bootstraps
+ active_bootstrap_symlink: /var/www/nailgun/bootstraps/active_bootstrap
+ flavor: ubuntu
+ http_proxy: ""
+ https_proxy: ""
+ repos:
+ - name: ubuntu
+ section: "main universe multiverse"
+ uri: "http://127.0.0.1:8080/mirrors/ubuntu"
+ priority:
+ suite: trusty
+ type: deb
+ - name: ubuntu-updates
+ section: "main universe multiverse"
+ uri: "http://127.0.0.1:8080/mirrors/ubuntu"
+ priority:
+ suite: trusty-updates
+ type: deb
+ - name: ubuntu-security
+ section: "main universe multiverse"
+ uri: "http://127.0.0.1:8080/mirrors/ubuntu"
+ priority:
+ suite: trusty-security
+ type: deb
+ - name: mos
+ section: "main restricted"
+ uri: "http://127.0.0.1:8080/ubuntu/x86_64"
+ priority: 1050
+ suite: mos9.0
+ type: deb
+ skip_default_img_build: false
+ direct_repo_addresses:
+ - "127.0.0.1"
diff --git a/build/f_isoroot/f_repobuild/opnfv_mirror_conf.py b/build/f_isoroot/f_repobuild/opnfv_mirror_conf.py
new file mode 100755
index 000000000..1c7eb591a
--- /dev/null
+++ b/build/f_isoroot/f_repobuild/opnfv_mirror_conf.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# mskalski@mirantis.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
+##############################################################################
+import os
+import yaml
+
+current_snapshot = os.environ["LATEST_TARGET_UBUNTU"]
+mos_version = os.environ['MOS_VERSION']
+openstack_version = os.environ['OPENSTACK_VERSION']
+mos_ubuntu = os.environ['MIRROR_MOS_UBUNTU']
+mos_ubuntu_root = os.environ['MIRROR_MOS_UBUNTU_ROOT']
+mirror_ubuntu = os.environ['MIRROR_UBUNTU_URL']
+if os.environ.get('BUILD_FUEL_PLUGINS'):
+ plugins = os.environ['BUILD_FUEL_PLUGINS']
+else:
+ plugins = os.environ['PLUGINS']
+
+
+configuration_file = open('fuel-mirror/contrib/fuel_mirror/etc/config.yaml').read()
+conf = yaml.load(configuration_file)
+conf['pattern_dir'] = '.'
+conf['openstack_version'] = openstack_version
+conf['mos_version'] = mos_version
+
+with open('opnfv-config.yaml', 'w') as outfile:
+ outfile.write( yaml.dump(conf, default_flow_style=False) )
+
+pattern_file = open('fuel-mirror/contrib/fuel_mirror/data/ubuntu.yaml').read()
+pattern = yaml.load(pattern_file)
+pattern['mos_baseurl'] = "http://{}{}".format(mos_ubuntu, mos_ubuntu_root)
+pattern['ubuntu_baseurl'] = mirror_ubuntu
+for group in pattern['groups']['mos']:
+ group['uri'] = pattern['mos_baseurl']
+for group in pattern['groups']['ubuntu']:
+ group['uri'] = pattern['ubuntu_baseurl']
+
+for plugin in plugins.split():
+ path = "../{}/packages.yaml".format(plugin)
+ if os.path.isfile(path):
+ f = open(path).read()
+ plugin_yaml = yaml.load(f)
+ plugin_set = set(plugin_yaml['packages'])
+ main_set = set(pattern['packages'])
+ new_packages = plugin_set - main_set
+ print "Plugin {} require new packages: {}".format(plugin, ', '.join(new_packages))
+ pattern['packages'] = pattern['packages'] + list(new_packages)
+
+pattern['requirements']['ubuntu'] = pattern['packages']
+
+with open('ubuntu.yaml', 'w') as outfile:
+ outfile.write( yaml.safe_dump(pattern, default_flow_style=False) )
diff --git a/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh b/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh
new file mode 100755
index 000000000..20b3485a1
--- /dev/null
+++ b/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+##############################################################################
+# Copyright (c) 2015,2016 Ericsson AB and others.
+# mskalski@mirantis.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
+##############################################################################
+
+# Try to choose close ubuntu mirror from mirrors.txt, but "whitewash" this
+# against the full repo list to removed mirrors not up-to-date.
+
+# Some Ubuntu mirrors seem less reliable for this type of mirroring -
+# as they are discoved they can be added to the blacklist below in order
+# for them not to be considered.
+BLACKLIST="mirror.clibre.uqam.ca"
+
+#NOTE: For now the mirror selection is disabled due to issues not yet
+# understood/resolved.
+#for url in $((curl -s https://launchpad.net/ubuntu/+archivemirrors | \
+# grep -P -B8 "statusUP|statusSIX" | \
+# grep -o -P "(f|ht)tp.*\"" | \
+# sed 's/"$//' | sort | uniq; \
+# curl -s http://mirrors.ubuntu.com/mirrors.txt | sort | uniq) | \
+# sort | uniq -d)
+#do
+# host=$(echo $url | cut -d'/' -f3)
+# echo ${BLACKLIST} | grep -q ${host} && continue
+# if curl -s -o /dev/null --head --fail "$url"; then
+# echo $url
+# exit 0
+# else
+# continue
+# fi
+#done
+
+# If no suitable local mirror can be found,
+# the default archive is returned instead.
+echo "http://archive.ubuntu.com/ubuntu/"
diff --git a/build/f_isoroot/f_vsperfpluginbuild/Makefile b/build/f_isoroot/f_vsperfpluginbuild/Makefile
new file mode 100644
index 000000000..73de611ff
--- /dev/null
+++ b/build/f_isoroot/f_vsperfpluginbuild/Makefile
@@ -0,0 +1,92 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+TOP := $(shell pwd)
+
+############################################################################
+# BEGIN of Include definitions
+#
+include config.mk
+#
+# END Include definitions
+#############################################################################
+
+.PHONY: all
+all: .vsperfbuild
+
+.PHONY: clean
+clean:
+ @rm -f .vsperfbuild ../release/opnfv/fuel-plugin-vsperf*.rpm fuel-plugin-vsperf*.rpm
+ @rm -f $(BUILD_BASE)/gitinfo_vsperf-plugin.txt gitinfo_vsperf-plugin.txt
+
+.PHONY: release
+release:.vsperfbuild
+ @rm -f ../release/opnfv/fuel-plugin-vsperf*.rpm
+ @mkdir -p ../release/opnfv
+ @cp fuel-plugin-vsperf*.rpm ../release/opnfv/
+ cp gitinfo_vsperf-plugin.txt $(BUILD_BASE)
+
+.vsperfbuild:
+ @rm -rf vswitchperf
+ ../../docker/ubuntu-builder/install_docker.sh
+ git clone $(VSPERF_REPO) vswitchperf
+ cd vswitchperf; \
+ git checkout $(VSPERF_BRANCH); \
+ if [ ! -z $(VSPERF_CHANGE) ]; then \
+ git fetch $(VSPERF_REPO) $(VSPERF_CHANGE); \
+ git checkout FETCH_HEAD; \
+ fi
+ cd vswitchperf; \
+ INCLUDE_DEPENDENCIES=true fpb --debug --build fuel-plugin-vsperf/
+ @mv vswitchperf/fuel-plugin-vsperf/fuel-plugin-vsperf*.rpm .
+ $(REPOINFO) -r . > gitinfo_vsperf-plugin.txt
+ @rm -rf fuel-plugin-vsperf
+ @touch .vsperfbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+
+# Create a unique hash to be used for getting and putting cache, based on:
+# - The SHA1 hash of the HEAD on the plugin repo's $(VSPERF_BRANCH)
+# - The contents of this Makefile
+.cacheid:
+ @if [ ! -z $(VSPERF_CHANGE) ]; then \
+ $(CACHETOOL) getcommitid $(VSPERF_REPO) $(VSPERF_CHANGE) > .cachedata; \
+ else \
+ $(CACHETOOL) getcommitid $(VSPERF_REPO) $(VSPERF_BRANCH) > .cachedata; \
+ fi
+ @sha1sum Makefile | awk {'print $$1'} >> .cachedata
+ @sha1sum config.mk | awk {'print $$1'} >> .cachedata
+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
+ @cat .cachedata | $(CACHETOOL) getid > .cacheid
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ @rm -f .cachedata .cacheid
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache: .cacheid
+ @if $(CACHETOOL) check $(shell cat .cacheid); then \
+ $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
+ else \
+ echo "No cache item found for $(shell cat .cacheid)" ;\
+ exit 0;\
+ fi
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache: .cacheid
+ @tar cf - .vsperfbuild fuel-plugin-vsperf*.rpm gitinfo_vsperf-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_vsperfpluginbuild/config.mk b/build/f_isoroot/f_vsperfpluginbuild/config.mk
new file mode 100644
index 000000000..35f4059f1
--- /dev/null
+++ b/build/f_isoroot/f_vsperfpluginbuild/config.mk
@@ -0,0 +1,12 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.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
+##############################################################################
+
+VSPERF_BRANCH?=5a0c6772d255aeb0ab1e6246c91bbeb56bb3a239
+VSPERF_REPO?=https://gerrit.opnfv.org/gerrit/vswitchperf.git
+VSPERF_CHANGE?=
diff --git a/build/f_isoroot/f_yardstick-pluginbuild/Makefile b/build/f_isoroot/f_yardstick-pluginbuild/Makefile
new file mode 100644
index 000000000..32de3b3f4
--- /dev/null
+++ b/build/f_isoroot/f_yardstick-pluginbuild/Makefile
@@ -0,0 +1,92 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.com
+# ruijing.guo@intel.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
+##############################################################################
+
+TOP := $(shell pwd)
+
+############################################################################
+# BEGIN of Include definitions
+#
+include config.mk
+#
+# END Include definitions
+#############################################################################
+
+.PHONY: all
+all: .yardstickbuild
+
+.PHONY: clean
+clean:
+ @rm -f .yardstickbuild ../release/opnfv/fuel-plugin-yardstick*.rpm fuel-plugin-yardstick*.rpm
+ @rm -f $(BUILD_BASE)/gitinfo_yardstick-plugin.txt gitinfo_yardstick-plugin.txt
+
+.PHONY: release
+release:.yardstickbuild
+ @rm -f ../release/opnfv/fuel-plugin-yardstick*.rpm
+ @mkdir -p ../release/opnfv
+ @cp fuel-plugin-yardstick*.rpm ../release/opnfv/
+ cp gitinfo_yardstick-plugin.txt $(BUILD_BASE)
+
+.yardstickbuild:
+ @rm -rf yardstick
+ git clone $(YARDSTICK_REPO) yardstick
+ cd yardstick; \
+ git checkout $(YARDSTICK_BRANCH); \
+ if [ ! -z $(YARDSTICK_CHANGE) ]; then \
+ git fetch $(YARDSTICK_REPO) $(YARDSTICK_CHANGE); \
+ git checkout FETCH_HEAD; \
+ fi
+ cd yardstick; \
+ INCLUDE_DEPENDENCIES=true fpb --debug --build fuel-plugin/
+ @mv yardstick/fuel-plugin/fuel-plugin-yardstick*.rpm .
+ $(REPOINFO) -r . > gitinfo_yardstick-plugin.txt
+ @rm -rf fuel-plugin-yardstick
+ @touch .yardstickbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+
+# Create a unique hash to be used for getting and putting cache, based on:
+# - The SHA1 hash of the HEAD on the plugin repo's $(YARDSTICK_BRANCH)
+# - The contents of this Makefile
+.cacheid:
+ @if [ ! -z $(YARDSTICK_CHANGE) ]; then \
+ $(CACHETOOL) getcommitid $(YARDSTICK_REPO) $(YARDSTICK_CHANGE) > .cachedata; \
+ else \
+ $(CACHETOOL) getcommitid $(YARDSTICK_REPO) $(YARDSTICK_BRANCH) > .cachedata; \
+ fi
+ @sha1sum Makefile | awk {'print $$1'} >> .cachedata
+ @sha1sum config.mk | awk {'print $$1'} >> .cachedata
+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
+ @cat .cachedata | $(CACHETOOL) getid > .cacheid
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+ @rm -f .cachedata .cacheid
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache: .cacheid
+ @if $(CACHETOOL) check $(shell cat .cacheid); then \
+ $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
+ else \
+ echo "No cache item found for $(shell cat .cacheid)" ;\
+ exit 0;\
+ fi
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache: .cacheid
+ @tar cf - .yardstickbuild fuel-plugin-yardstick*.rpm gitinfo_yardstick-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_yardstick-pluginbuild/config.mk b/build/f_isoroot/f_yardstick-pluginbuild/config.mk
new file mode 100644
index 000000000..88b1ea604
--- /dev/null
+++ b/build/f_isoroot/f_yardstick-pluginbuild/config.mk
@@ -0,0 +1,13 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jonas.bjurel@eicsson.com
+# ruijing.guo@intel.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
+##############################################################################
+
+YARDSTICK_BRANCH?=86b9fc4f434c72bd276e4bf1ce7d7f5a04b150b2
+YARDSTICK_REPO?=https://gerrit.opnfv.org/gerrit/yardstick.git
+YARDSTICK_CHANGE?=