diff options
author | Jonas Bjurel <jonas.bjurel@ericsson.com> | 2016-09-30 20:28:22 +0200 |
---|---|---|
committer | Jonas Bjurel <jonas.bjurel@ericsson.com> | 2016-09-30 20:43:13 +0200 |
commit | af2db33a0ebab98700c3c03ea84a6ba9b987c5b5 (patch) | |
tree | 0b789b555d1d62af4e80aea8d802998a32573ad3 /build/f_isoroot | |
parent | 095442c4bdf437531eae2aecd364e74d756757fd (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')
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?= |