diff options
-rw-r--r-- | foreman/docs/src/release-notes.rst | 195 | ||||
-rw-r--r-- | fuel/build/Makefile | 3 | ||||
-rw-r--r-- | fuel/build/install/apt-ftparchive-udeb.conf | 33 | ||||
-rwxr-xr-x | fuel/build/install/install.sh | 10 | ||||
-rw-r--r-- | fuel/build/patch-packages/Makefile | 2 | ||||
-rw-r--r-- | fuel/build/patch-packages/debootstrap/Makefile | 28 | ||||
-rw-r--r-- | fuel/build/patch-packages/debootstrap/debootstrap.patch | 12 | ||||
-rwxr-xr-x | fuel/build/patch-packages/tools/udeb_pack | 38 | ||||
-rwxr-xr-x | fuel/build/patch-packages/tools/udeb_unpack | 58 | ||||
-rwxr-xr-x | fuel/prototypes/libvirt/deploy/deploy.sh | 13 |
10 files changed, 386 insertions, 6 deletions
diff --git a/foreman/docs/src/release-notes.rst b/foreman/docs/src/release-notes.rst new file mode 100644 index 0000000..cb6db30 --- /dev/null +++ b/foreman/docs/src/release-notes.rst @@ -0,0 +1,195 @@ +:Authors: Tim Rozet (trozet@redhat.com) +:Version: 0.1 + +================================================================ +OPNFV Release Note for "Arno-RC2 release candidate" - Foreman/QuickStack@OPNFV +================================================================ + +Abstract +======== + +This document provides the release notes for ARNO-RC2 release candidate of Foreman/QuickStack@OPNFV. + +License +======= +All Foreman/QuickStack and "common" entities are protected by the Apache License ( http://www.apache.org/licenses/ ) + +**Contents** + +1 Version History + +2 Important notes + +3 Summary + +4 Delivery Data + +5 Known Limitations, Issues and Workarounds + +6 Test Result + +7 References + +1 Version history +=================== + ++--------------------+--------------------+--------------------+--------------------+ +| **Date** | **Ver.** | **Author** | **Comment** | +| | | | | ++--------------------+--------------------+--------------------+--------------------+ +| 2015-04-16 | 0.1.0 | Tim Rozet | First draft | +| | | | | ++--------------------+--------------------+--------------------+--------------------+ + +2 Important notes +=================== + +This is the first OPNFV Arno pre-release that implements the deploy stage of the OPNFV CI pipeline. + +Carefully follow the installation-instructions which guide a user on how to deploy OPNFV using Foreman/QuickStack installer. + +3 Summary +=========== + +Arno Foreman/QuickStack@OPNFV is an installer capable of setting up an OPNFV target system. The current definition of an OPNFV target system is OpenStack Juno upstream project versioncombined with OpenDaylight version: Helium. The system is deployed with OpenStack High Availability (HA) for most OpenStack services. OpenDaylight is deployed in non-HA form as HA is not availble for Arno release. Ceph storage is used as Cinder backend, and is the only supported storage for Arno. Ceph is setup as 3 OSDs and 3 Monitors, one OSD+Mon per Controller node. + +This Arno pre-release of Foreman/QuickStack@OPNFV adds the deploy stage of the OPNFV CI pipeline + +- Documentation is built by Jenkins +- .iso image is built by Jenkins +- Jenkins deploys an Foreman/QuickStack@OPNFV stack to baremetal, which includes 3 control+network nodes, and 2 compute nodes. + +Automatic test of the deployed system is not part of this pre-release. + +4 Release Data +================ + ++--------------------------------------+--------------------------------------+ +| **Project** | Arno/genesis/bgs | +| | | ++--------------------------------------+--------------------------------------+ +| **Repo/tag** | genesis/arno-rc2 | +| | | ++--------------------------------------+--------------------------------------+ +| **Release designation** | Arno RC2 | +| | | ++--------------------------------------+--------------------------------------+ +| **Release date** | 2015-04-23 | +| | | ++--------------------------------------+--------------------------------------+ +| **Purpose of the delivery** | OPNFV Internal quality assurance | +| | and CI Pipline dry-run | +| | | ++--------------------------------------+--------------------------------------+ + +4.1 Version change +------------------ + +4.1.1 Module version changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This is the first tracked version of genesis-Foreman/QuickStack. It is based on following upstream versions: + +- OpenStack (Juno release) + +- OpenDaylight Helium-SR2 + +- CentOS 7 + +4.1.2 Document version changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This is the first tracked version of genesis-Foreman/QuickStack. It comes with the following documentation: + +- OPNFV Installation instructions for - Foreman/QuickStack@OPNFV - ver. 0.0.1 +- OPNFV Release Note for "Arno-RC2 release candidate" - Foreman/QuickStack@OPNFV - ver. 0.1 (this document) + +4.2 Reason for version +---------------------- +4.2.1 Feature additions +~~~~~~~~~~~~~~~~~~~~~~~ + ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: BGS-4 | OPNFV base system install | +| | using Foreman/Quickstack. | ++--------------------------------------+--------------------------------------+ + +4.2.2 Bug corrections +~~~~~~~~~~~~~~~~~~~~~ + +**JIRA TICKETS:** + ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| | | +| | | ++--------------------------------------+--------------------------------------+ + +4.3 Deliverables +---------------- + +4.3.1 Software deliverables +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Foreman/QuickStack@OPNFV .iso file +deploy.sh - Automatically deploys Target OPNFV System to Bare Metal + +4.3.2 Documentation deliverables +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- OPNFV Installation instructions for - Foreman/QuickStack@OPNFV - ver. 0.0.1 +- OPNFV Release Note for "Arno-RC2 release candidate" - Foreman/QuickStack@OPNFV - ver. 0.1 (this document) + +5 Known Limitations, Issues and Workarounds +============================================ + +5.1 System Limitations +------------------------- + +**Max number of blades:** 1 Foreman/QuickStack master, 3 Controllers, 20 Compute blades + +**Min number of blades:** 1 Foreman/QuickStack master, 1 Controller, 1 Compute blade + +**Storage:** Ceph is the only supported storage configuration. + +**Min master requirements:** At least 2048 MB of RAM + + +5.2 Known issues +------------------- + +**JIRA TICKETS:** + ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: BGS-13 | bridge br-ex is not auto configured | +| | by puppet | ++--------------------------------------+--------------------------------------+ + +5.3 Workarounds +------------------ +**-** + + +6 Test Result +============== + +Foreman/QuickStack@OPNFV Arno RC2 has undergone QA test runs with the following results: + ++--------------------------------------+--------------------------------------+ +| **TEST-SUITE** | **Results:** | +| | | ++--------------------------------------+--------------------------------------+ +| **-** | **-** | ++--------------------------------------+--------------------------------------+ + + +7 References +============= + +For more information on the OPNFV Arno release, please see: + +http://wiki.opnfv.org/release/arno diff --git a/fuel/build/Makefile b/fuel/build/Makefile index fda212d..5f63120 100644 --- a/fuel/build/Makefile +++ b/fuel/build/Makefile @@ -27,6 +27,7 @@ export NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso #Build variables export BUILD_BASE := $(shell pwd) export DEB_DEST := $(BUILD_BASE)/release/packages/ubuntu/pool/main +export UDEB_DEST := $(BUILD_BASE)/release/packages/ubuntu/pool/debian-installer export PUPPET_DEST := $(BUILD_BASE)/release/puppet/modules export CACHE_DIR := $(BUILD_BASE)/cache export VERSION_FILE := $(BUILD_BASE)/.versions @@ -108,7 +109,7 @@ umount-origiso: .PHONY: $(SUBDIRS) $(SUBDIRS): - @mkdir -p release/packages/ubuntu/pool/main release/puppet/modules release/isoroot + @mkdir -p release/packages/ubuntu/pool/main release/packages/ubuntu/pool/debian-installer release/puppet/modules release/isoroot $(MAKE) -C $@ -f Makefile release .PHONY: patch-packages diff --git a/fuel/build/install/apt-ftparchive-udeb.conf b/fuel/build/install/apt-ftparchive-udeb.conf new file mode 100644 index 0000000..2acbcf0 --- /dev/null +++ b/fuel/build/install/apt-ftparchive-udeb.conf @@ -0,0 +1,33 @@ +############################################################################## +# 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 +############################################################################## + +Dir { + ArchiveDir "."; +}; + +TreeDefault { + Directory "pool"; +}; + +BinDirectory "pool/debian-installer" { + Packages "dists/precise/main/debian-installer/binary-amd64/Packages"; + BinOverride "./indices/override.precise.main.debian-installer"; +}; + +Default { + Packages { + Extensions ".udeb"; + Compress ". gzip"; + }; +}; + +Contents { + Compress "gzip"; +}; diff --git a/fuel/build/install/install.sh b/fuel/build/install/install.sh index 823bcd9..dbb26d6 100755 --- a/fuel/build/install/install.sh +++ b/fuel/build/install/install.sh @@ -257,6 +257,14 @@ make_iso() { copy_packages() { echo "Copying Debian packages..." + cd $TOP/release/packages/ubuntu/pool/debian-installer + + for udeb in `ls -1 | grep '\.udeb$'` + do + echo " $udeb" + cp $udeb $REPO/pool/debian-installer + done + cd $TOP/release/packages/ubuntu/pool/main for deb in `ls -1 | grep '\.deb$'` do @@ -401,8 +409,10 @@ copy_packages() { # The below methods are from 15B APT_REL_CONF="$TOP/install/apt-ftparchive-release.conf" APT_DEB_CONF="$TOP/install/apt-ftparchive-deb.conf" + APT_UDEB_CONF="$TOP/install/apt-ftparchive-udeb.conf" apt-ftparchive -c "${APT_REL_CONF}" generate "${APT_DEB_CONF}" + apt-ftparchive generate "${APT_UDEB_CONF}" # Fuel also needs this index file cat dists/precise/main/binary-amd64/Packages | \ diff --git a/fuel/build/patch-packages/Makefile b/fuel/build/patch-packages/Makefile index 9eb22fe..bcaac36 100644 --- a/fuel/build/patch-packages/Makefile +++ b/fuel/build/patch-packages/Makefile @@ -8,7 +8,7 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -SUBDIRS := python-nova +SUBDIRS := python-nova debootstrap SUBCLEAN = $(addsuffix .clean,$(SUBDIRS)) .PHONY: $(SUBDIRS) $(SUBCLEAN) clean diff --git a/fuel/build/patch-packages/debootstrap/Makefile b/fuel/build/patch-packages/debootstrap/Makefile new file mode 100644 index 0000000..0109312 --- /dev/null +++ b/fuel/build/patch-packages/debootstrap/Makefile @@ -0,0 +1,28 @@ +############################################################################## +# 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: + +.PHONY: clean +clean: + @rm -rf udebPackage + @rm -rf *.udeb + @rm -rf patch-replacements + @rm -rf .udebpackage + +.PHONY: release +release: + ../tools/udeb_unpack debootstrap-udeb_1.0.4*.udeb $(ORIGISO) + patch -s -p0 < debootstrap.patch + ../tools/udeb_pack $(REVSTATE) + @cp *.udeb $(UDEB_DEST) diff --git a/fuel/build/patch-packages/debootstrap/debootstrap.patch b/fuel/build/patch-packages/debootstrap/debootstrap.patch new file mode 100644 index 0000000..62342c9 --- /dev/null +++ b/fuel/build/patch-packages/debootstrap/debootstrap.patch @@ -0,0 +1,12 @@ +--- udebPackage/usr/share/debootstrap/scripts/gutsy.orig 2014-11-10 18:21:37.000000000 +0000 ++++ udebPackage/usr/share/debootstrap/scripts/gutsy 2015-04-15 09:28:44.290437000 +0000 +@@ -112,7 +112,8 @@ + + p; progress $baseprog $bases INSTCORE "Installing core packages" #2 + ln -sf mawk "$TARGET/usr/bin/awk" +- x_core_install base-files base-passwd ++ x_core_install base-passwd ++ x_core_install base-files + p; progress $baseprog $bases INSTCORE "Installing core packages" #3 + x_core_install dpkg + diff --git a/fuel/build/patch-packages/tools/udeb_pack b/fuel/build/patch-packages/tools/udeb_pack new file mode 100755 index 0000000..e961a73 --- /dev/null +++ b/fuel/build/patch-packages/tools/udeb_pack @@ -0,0 +1,38 @@ +#!/bin/bash -e +############################################################################## +# 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 +############################################################################## + + +my_exit() { + + if [ -d "$ISOROOT" ]; then + fusermount -u $ISOROOT + fi +} + +ME=$(basename $0) + +trap my_exit EXIT + +if [ ! -d udebPackage ]; then + echo "$ME: Error - package directory does not exist" + exit 1 +fi + +echo "Stepping revision number to $REV" + + +fakeroot dpkg-deb --build -Zgzip udebPackage +PKGNAME=`grep "^Package: " udebPackage/DEBIAN/control | awk '{ print $2 }'` +PKGREV=`grep "^Version: " udebPackage/DEBIAN/control | awk '{ print $2 }'` +ARCH=`grep "^Architecture: " udebPackage/DEBIAN/control | awk '{ print $2 }'` +mv udebPackage.deb ${PKGNAME}_${PKGREV}_${ARCH}.udeb + +ORIGPKG=`cat .udebpackage` diff --git a/fuel/build/patch-packages/tools/udeb_unpack b/fuel/build/patch-packages/tools/udeb_unpack new file mode 100755 index 0000000..ed9cd21 --- /dev/null +++ b/fuel/build/patch-packages/tools/udeb_unpack @@ -0,0 +1,58 @@ +#!/bin/bash -e +############################################################################## +# 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 +############################################################################## + + +my_exit() { + + if [ -d "$ISOROOT" ]; then + fusermount -u $ISOROOT + fi +} + +ME=$(basename $0) + +trap my_exit EXIT + + +if [ -z "$1" ]; then + echo "$ME: Error - No package specified" + exit 1 +fi + +if [ -z "$2" ]; then + echo "$ME: Error - No ISO path specified" + exit 1 +fi + +DEB=$1 +ORIGISO=$2 +DEST=udebPackage + +if [ -e $DEST -o -d $DEST ]; then + echo "$ME: Error - $DEST already exists" + exit 1 +fi + +ISOROOT=`mktemp -d /tmp/XXXXXXX` +fuseiso -p $ORIGISO $ISOROOT +sleep 1 + +if [ ! -f $ISOROOT/ubuntu/pool/debian-installer/$DEB ];then + echo "Could not find package $DEB in source ISO!" +fi + +mkdir -p $DEST +dpkg -x $ISOROOT/ubuntu/pool/debian-installer/$DEB $DEST + +mkdir -p $DEST/DEBIAN +dpkg -e $ISOROOT/ubuntu/pool/debian-installer/$DEB $DEST/DEBIAN + +echo $DEB > .udebpackage diff --git a/fuel/prototypes/libvirt/deploy/deploy.sh b/fuel/prototypes/libvirt/deploy/deploy.sh index 5d267e6..ba7f7cd 100755 --- a/fuel/prototypes/libvirt/deploy/deploy.sh +++ b/fuel/prototypes/libvirt/deploy/deploy.sh @@ -21,9 +21,14 @@ deployiso=${tmpdir}/deploy.iso exit_handler() { # Remove safety catch - kill $killpid + kill -9 `ps -p $killpid -o pid --no-headers` \ + `ps --ppid $killpid -o pid --no-headers`\ + > /dev/null 2>&1 } +# Set maximum allowed deploy time (default three hours) +MAXDEPLOYTIME=${MAXDEPLOYTIME-3h} + ####### MAIN ######## if [ "`whoami`" != "root" ]; then @@ -59,14 +64,14 @@ if [ ! -f $deafile ]; then fi -# Enable safety catch at three hours -(sleep 3h; kill $$) & +# Enable safety catch +echo "Enabling auto-kill if deployment exceeds $MAXDEPLOYTIME" +(sleep $MAXDEPLOYTIME; echo "Auto-kill of deploy after a timeout of $MAXDEPLOYTIME"; kill $$) & killpid=$! # Enable exit handler trap exit_handler exit - # Stop all VMs for node in controller1 controller2 controller3 compute4 compute5 fuel-master do |