Merge "Includes fixes that remove need for interface hardcoding and adds support...
authorDan Radez <dradez@redhat.com>
Tue, 21 Apr 2015 18:46:01 +0000 (18:46 +0000)
committerGerrit Code Review <gerrit@172.30.200.206>
Tue, 21 Apr 2015 18:46:01 +0000 (18:46 +0000)
foreman/docs/src/release-notes.rst [new file with mode: 0644]
fuel/build/Makefile
fuel/build/install/apt-ftparchive-udeb.conf [new file with mode: 0644]
fuel/build/install/install.sh
fuel/build/patch-packages/Makefile
fuel/build/patch-packages/debootstrap/Makefile [new file with mode: 0644]
fuel/build/patch-packages/debootstrap/debootstrap.patch [new file with mode: 0644]
fuel/build/patch-packages/tools/udeb_pack [new file with mode: 0755]
fuel/build/patch-packages/tools/udeb_unpack [new file with mode: 0755]
fuel/prototypes/libvirt/deploy/deploy.sh

diff --git a/foreman/docs/src/release-notes.rst b/foreman/docs/src/release-notes.rst
new file mode 100644 (file)
index 0000000..cb6db30
--- /dev/null
@@ -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
index fda212d..5f63120 100644 (file)
@@ -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 (file)
index 0000000..2acbcf0
--- /dev/null
@@ -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";
+};
index 823bcd9..dbb26d6 100755 (executable)
@@ -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 | \
index 9eb22fe..bcaac36 100644 (file)
@@ -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 (file)
index 0000000..0109312
--- /dev/null
@@ -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 (file)
index 0000000..62342c9
--- /dev/null
@@ -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 (executable)
index 0000000..e961a73
--- /dev/null
@@ -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 (executable)
index 0000000..ed9cd21
--- /dev/null
@@ -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
index 5d267e6..ba7f7cd 100755 (executable)
@@ -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