Update of Fuel based build system to Fuel 6.0.1 32/32/3
authorStefan K. Berg <stefan.k.berg@ericsson.com>
Fri, 13 Feb 2015 16:09:52 +0000 (17:09 +0100)
committerStefan K. Berg <stefan.k.berg@ericsson.com>
Tue, 17 Feb 2015 15:22:42 +0000 (16:22 +0100)
Rebase of the build system to build Fuel from the stable/6.0 branch
which currently creates Fuel 6.0.1. The Fuel baseline thus becomes:

- OpenStack Juno
- Ubuntu 12.04.4
- CentOS 6.5

An additional patch is added to the Fuel build system to enable
a newer version of Fuel to be built under Docker (as the Ubuntu
sandbox chroot is installing atd, where the post install expects
upstart to be running which is not the case in the build container).

Rebase of patches on top of Fuel to support 6.0.1.

Change-Id: I2e884d27e1533be8d60c071a7ea9db998a4f5fea
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
fuel-build/Makefile
fuel-build/docker/runcontext
fuel-build/f_isoroot/f_kscfg/ks.cfg
fuel-build/f_isoroot/f_kscfg/ks.cfg.orig
fuel-build/f_opnfv_puppet/puppet/modules/opnfv/manifests/add_packages.pp [new file with mode: 0644]
fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp
fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp.orig
fuel-build/fuel-main_1.patch [moved from fuel-build/fuel-main.patches with 100% similarity]
fuel-build/fuel-main_2.patch [new file with mode: 0644]
fuel-build/patch-packages/python-nova/Makefile
fuel-build/patch-packages/python-nova/nova-console.patch

index 98b108c..eb37b4d 100644 (file)
@@ -12,7 +12,7 @@
 # BEGIN of variables to customize
 #
 SHELL = /bin/bash
-ISOSRC = file:$(shell pwd)/fuel-5.1.1.iso
+ISOSRC = file:$(shell pwd)/fuel-6.0.1.iso
 ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
 PRODUCT_NAME = "OPNFV_BGS"
 VERSION = "P0000"
@@ -40,7 +40,7 @@ SUBDIRS += f_ntp
 SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
 
 .PHONY: all
-all:   
+all:
        @docker version >/dev/null 2>&1 || (echo 'No Docker installation available'; exit 1)
        @make -C docker
        @docker/runcontext $(DOCKERIMG) $(MAKE) $(MAKEFLAGS) iso
@@ -48,11 +48,14 @@ all:
 $(ISOCACHE):
        # Clone Fuel to non-persistent location and build
        cd /tmp && git clone https://github.com/stackforge/fuel-main
-       cd /tmp/fuel-main && git checkout 5.1.1
+       cd /tmp/fuel-main && git checkout stable/6.0
        # Setup cgroups for docker-in-docker
        sudo /root/enable_dockerx2
        # Patch to fix race condition when doing "Docker-in-Docker" build
-       cd /tmp/fuel-main && patch -p1 < $(TOPDIR)/fuel-main.patches
+       cd /tmp/fuel-main && patch -p1 < $(TOPDIR)/fuel-main_1.patch
+       # Patch to make the sandbox chroot in Fuel succeed with package
+       # installation in a Docker build
+       cd /tmp/fuel-main && patch -p1 < $(TOPDIR)/fuel-main_2.patch
        # Remove Docker optimizations, otherwise multistrap will fail during
        # Fuel build.
        sudo rm -f /etc/apt/apt.conf.d/docker*
index d4e8b9c..6140fa0 100755 (executable)
@@ -18,8 +18,9 @@ FROM $context
 RUN date || date
 RUN /root/setcontext $USER $UID $GID $HOME
 EOF`
+GITROOT=`git rev-parse --show-toplevel`
 CID=`echo $res | sed 's/.* //'`
-docker run --privileged=true --rm -i -t -e HOME=$HOME -u $USER -w $PWD -v ${HOME}/.ssh:${HOME}/.ssh -v $PWD:$PWD $CID "$@"
+docker run --privileged=true --rm -i -t -e HOME=$HOME -u $USER -w $PWD -v ${HOME}/.ssh:${HOME}/.ssh -v $GITROOT:$GITROOT $CID "$@"
 rc=$?
 docker rmi $CID > /dev/null
 exit $rc
index 8194e8d..932e9ac 100755 (executable)
@@ -57,7 +57,7 @@ function confirm_format {
     parted -s /dev/$check_drive print
     echo
     read -p "Are you sure you want to erase ALL data on disk $check_drive? (y/N)" confirm_format
-    if [[ "$confirm_format" == "y" ]] || [[ "$forceformat" == "yes" ]]; then
+    if [[ "$confirm_format" == "y" ]] || [[ "$confirm_format" == "Y" ]] || [[ "$forceformat" == "yes" ]]; then
       return 0
     else
       return 1
@@ -369,54 +369,86 @@ if test -e /dev/disk/by-uuid/will_be_substituted_with_actual_uuid; then
     mount -o loop ${FS}/nailgun.iso ${SOURCE}
 fi
 
-# Copying Repo to the nailgun /var/www directory
-repodir="/var/www/nailgun"
-mkdir -p ${repodir}/centos/fuelweb/x86_64
-cp -r ${SOURCE}/images ${repodir}/centos/fuelweb/x86_64
-cp -r ${SOURCE}/isolinux ${repodir}/centos/fuelweb/x86_64
-cp -r ${SOURCE}/repodata ${repodir}/centos/fuelweb/x86_64
-cp -r ${SOURCE}/Packages ${repodir}/centos/fuelweb/x86_64
-cp ${SOURCE}/.treeinfo ${repodir}/centos/fuelweb/x86_64
+OPENSTACK_VERSION=`cat ${SOURCE}/openstack_version`
+
+# ----------------------
+# UNPACKING REPOSITORIES
+# ----------------------
+
+wwwdir="/var/www/nailgun"
+repodir="${wwwdir}/${OPENSTACK_VERSION}"
+
+# Copying Centos files
+mkdir -p ${repodir}/centos/x86_64
+cp -r ${SOURCE}/images ${repodir}/centos/x86_64
+cp -r ${SOURCE}/isolinux ${repodir}/centos/x86_64
+cp -r ${SOURCE}/repodata ${repodir}/centos/x86_64
+cp -r ${SOURCE}/Packages ${repodir}/centos/x86_64
+cp ${SOURCE}/.treeinfo ${repodir}/centos/x86_64
 
 # Copying Ubuntu files
-mkdir -p ${repodir}/ubuntu/fuelweb/x86_64/images
-cp -r ${SOURCE}/ubuntu/conf ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/db ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/dists ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/indices ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/pool ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux ${repodir}/ubuntu/fuelweb/x86_64/images
-cp -r ${SOURCE}/ubuntu/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz ${repodir}/ubuntu/fuelweb/x86_64/images
+mkdir -p ${repodir}/ubuntu/x86_64/images
+cp -r ${SOURCE}/ubuntu/conf ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/db ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/dists ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/indices ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/pool ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux ${repodir}/ubuntu/x86_64/images
+cp -r ${SOURCE}/ubuntu/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz ${repodir}/ubuntu/x86_64/images
+
+# make links for backward compatibility
+ln -s ${repodir}/centos ${wwwdir}/centos
+ln -s ${repodir}/ubuntu ${wwwdir}/ubuntu
 
 # Copying bootstrap image
-mkdir -p ${repodir}/bootstrap
-cp -r ${SOURCE}/bootstrap/initramfs.img ${repodir}/bootstrap
-cp -r ${SOURCE}/bootstrap/linux ${repodir}/bootstrap
+mkdir -p ${wwwdir}/bootstrap
+cp -r ${SOURCE}/bootstrap/initramfs.img ${wwwdir}/bootstrap
+cp -r ${SOURCE}/bootstrap/linux ${wwwdir}/bootstrap
+
+# Copying target images
+cp -r ${SOURCE}/targetimages ${wwwdir}
 
 mkdir -p /root/.ssh
 chmod 700 /root/.ssh
 cp ${SOURCE}/bootstrap/bootstrap.rsa /root/.ssh
 chmod 600 /root/.ssh/bootstrap.rsa
 
-# Unpacking puppet manifests for master and slave
-cp ${SOURCE}/puppet-slave.tgz ${repodir}/
-tar zxf ${SOURCE}/puppet-slave.tgz -C /etc/puppet/modules
-mkdir -p /etc/puppet/manifests/
-cp /etc/puppet/modules/osnailyfacter/examples/site.pp /etc/puppet/manifests/site.pp
-cp ${SOURCE}/centos-versions.yaml ${SOURCE}/ubuntu-versions.yaml /etc/puppet/manifests/
+# --------------------------
+# UNPACKING PUPPET MANIFESTS
+# --------------------------
+
+# create folders
+mkdir -p /etc/puppet/${OPENSTACK_VERSION}/manifests/
+mkdir -p /etc/puppet/${OPENSTACK_VERSION}/modules/
+rm -rf /etc/puppet/modules/
+
+# TODO(ikalnitsky): investigate why we need this
+cp ${SOURCE}/puppet-slave.tgz ${wwwdir}/
+
+# place modules and manifests
+tar zxf ${SOURCE}/puppet-slave.tgz -C /etc/puppet/${OPENSTACK_VERSION}/modules
+cp /etc/puppet/${OPENSTACK_VERSION}/modules/osnailyfacter/examples/site.pp /etc/puppet/${OPENSTACK_VERSION}/manifests/site.pp
+cp ${SOURCE}/centos-versions.yaml ${SOURCE}/ubuntu-versions.yaml /etc/puppet/${OPENSTACK_VERSION}/manifests/
+
+# make links for backward compatibility
+pushd /etc/puppet
+ln -s ${OPENSTACK_VERSION}/manifests/ /etc/puppet/manifests
+ln -s ${OPENSTACK_VERSION}/modules/ /etc/puppet/modules
+popd
+
 cp ${SOURCE}/send2syslog.py /bin/send2syslog.py
 mkdir -p /var/lib/hiera
 touch /var/lib/hiera/common.yaml /etc/puppet/hiera.yaml
 
 # Deploy docker images and ctl tools if we built ISO with docker containers support
-[ -d "${SOURCE}/docker" ] && cp -r ${SOURCE}/docker ${repodir}/docker
+[ -d "${SOURCE}/docker" ] && cp -r ${SOURCE}/docker ${wwwdir}/docker
 
 # Prepare local repository specification
 rm /etc/yum.repos.d/CentOS*.repo
 cat > /etc/yum.repos.d/nailgun.repo << EOF
 [nailgun]
 name=Nailgun Local Repo
-baseurl=file:/var/www/nailgun/centos/fuelweb/x86_64
+baseurl=file:/var/www/nailgun/${OPENSTACK_VERSION}/centos/x86_64
 gpgcheck=0
 EOF
 
@@ -481,7 +513,7 @@ if [ "\$first" = "yes" ]; then
   ipstr="Fuel UI is available on: http://\$ip:8000"
   first=no
 else
-  ipstr=\$(printf "%s\n%51s" "\$ipstr" "http://\$ip:8000")
+  ipstr=\$(printf "%s\n%25s%s" "\$ipstr" " " "http://\$ip:8000")
 fi
 done
 tmpissue=\$(mktemp)
index 8d00dff..44f9f42 100644 (file)
@@ -57,7 +57,7 @@ function confirm_format {
     parted -s /dev/$check_drive print
     echo
     read -p "Are you sure you want to erase ALL data on disk $check_drive? (y/N)" confirm_format
-    if [[ "$confirm_format" == "y" ]] || [[ "$forceformat" == "yes" ]]; then
+    if [[ "$confirm_format" == "y" ]] || [[ "$confirm_format" == "Y" ]] || [[ "$forceformat" == "yes" ]]; then
       return 0
     else
       return 1
@@ -369,54 +369,86 @@ if test -e /dev/disk/by-uuid/will_be_substituted_with_actual_uuid; then
     mount -o loop ${FS}/nailgun.iso ${SOURCE}
 fi
 
-# Copying Repo to the nailgun /var/www directory
-repodir="/var/www/nailgun"
-mkdir -p ${repodir}/centos/fuelweb/x86_64
-cp -r ${SOURCE}/images ${repodir}/centos/fuelweb/x86_64
-cp -r ${SOURCE}/isolinux ${repodir}/centos/fuelweb/x86_64
-cp -r ${SOURCE}/repodata ${repodir}/centos/fuelweb/x86_64
-cp -r ${SOURCE}/Packages ${repodir}/centos/fuelweb/x86_64
-cp ${SOURCE}/.treeinfo ${repodir}/centos/fuelweb/x86_64
+OPENSTACK_VERSION=`cat ${SOURCE}/openstack_version`
+
+# ----------------------
+# UNPACKING REPOSITORIES
+# ----------------------
+
+wwwdir="/var/www/nailgun"
+repodir="${wwwdir}/${OPENSTACK_VERSION}"
+
+# Copying Centos files
+mkdir -p ${repodir}/centos/x86_64
+cp -r ${SOURCE}/images ${repodir}/centos/x86_64
+cp -r ${SOURCE}/isolinux ${repodir}/centos/x86_64
+cp -r ${SOURCE}/repodata ${repodir}/centos/x86_64
+cp -r ${SOURCE}/Packages ${repodir}/centos/x86_64
+cp ${SOURCE}/.treeinfo ${repodir}/centos/x86_64
 
 # Copying Ubuntu files
-mkdir -p ${repodir}/ubuntu/fuelweb/x86_64/images
-cp -r ${SOURCE}/ubuntu/conf ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/db ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/dists ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/indices ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/pool ${repodir}/ubuntu/fuelweb/x86_64
-cp -r ${SOURCE}/ubuntu/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux ${repodir}/ubuntu/fuelweb/x86_64/images
-cp -r ${SOURCE}/ubuntu/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz ${repodir}/ubuntu/fuelweb/x86_64/images
+mkdir -p ${repodir}/ubuntu/x86_64/images
+cp -r ${SOURCE}/ubuntu/conf ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/db ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/dists ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/indices ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/pool ${repodir}/ubuntu/x86_64
+cp -r ${SOURCE}/ubuntu/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux ${repodir}/ubuntu/x86_64/images
+cp -r ${SOURCE}/ubuntu/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz ${repodir}/ubuntu/x86_64/images
+
+# make links for backward compatibility
+ln -s ${repodir}/centos ${wwwdir}/centos
+ln -s ${repodir}/ubuntu ${wwwdir}/ubuntu
 
 # Copying bootstrap image
-mkdir -p ${repodir}/bootstrap
-cp -r ${SOURCE}/bootstrap/initramfs.img ${repodir}/bootstrap
-cp -r ${SOURCE}/bootstrap/linux ${repodir}/bootstrap
+mkdir -p ${wwwdir}/bootstrap
+cp -r ${SOURCE}/bootstrap/initramfs.img ${wwwdir}/bootstrap
+cp -r ${SOURCE}/bootstrap/linux ${wwwdir}/bootstrap
+
+# Copying target images
+cp -r ${SOURCE}/targetimages ${wwwdir}
 
 mkdir -p /root/.ssh
 chmod 700 /root/.ssh
 cp ${SOURCE}/bootstrap/bootstrap.rsa /root/.ssh
 chmod 600 /root/.ssh/bootstrap.rsa
 
-# Unpacking puppet manifests for master and slave
-cp ${SOURCE}/puppet-slave.tgz ${repodir}/
-tar zxf ${SOURCE}/puppet-slave.tgz -C /etc/puppet/modules
-mkdir -p /etc/puppet/manifests/
-cp /etc/puppet/modules/osnailyfacter/examples/site.pp /etc/puppet/manifests/site.pp
-cp ${SOURCE}/centos-versions.yaml ${SOURCE}/ubuntu-versions.yaml /etc/puppet/manifests/
+# --------------------------
+# UNPACKING PUPPET MANIFESTS
+# --------------------------
+
+# create folders
+mkdir -p /etc/puppet/${OPENSTACK_VERSION}/manifests/
+mkdir -p /etc/puppet/${OPENSTACK_VERSION}/modules/
+rm -rf /etc/puppet/modules/
+
+# TODO(ikalnitsky): investigate why we need this
+cp ${SOURCE}/puppet-slave.tgz ${wwwdir}/
+
+# place modules and manifests
+tar zxf ${SOURCE}/puppet-slave.tgz -C /etc/puppet/${OPENSTACK_VERSION}/modules
+cp /etc/puppet/${OPENSTACK_VERSION}/modules/osnailyfacter/examples/site.pp /etc/puppet/${OPENSTACK_VERSION}/manifests/site.pp
+cp ${SOURCE}/centos-versions.yaml ${SOURCE}/ubuntu-versions.yaml /etc/puppet/${OPENSTACK_VERSION}/manifests/
+
+# make links for backward compatibility
+pushd /etc/puppet
+ln -s ${OPENSTACK_VERSION}/manifests/ /etc/puppet/manifests
+ln -s ${OPENSTACK_VERSION}/modules/ /etc/puppet/modules
+popd
+
 cp ${SOURCE}/send2syslog.py /bin/send2syslog.py
 mkdir -p /var/lib/hiera
 touch /var/lib/hiera/common.yaml /etc/puppet/hiera.yaml
 
 # Deploy docker images and ctl tools if we built ISO with docker containers support
-[ -d "${SOURCE}/docker" ] && cp -r ${SOURCE}/docker ${repodir}/docker
+[ -d "${SOURCE}/docker" ] && cp -r ${SOURCE}/docker ${wwwdir}/docker
 
 # Prepare local repository specification
 rm /etc/yum.repos.d/CentOS*.repo
 cat > /etc/yum.repos.d/nailgun.repo << EOF
 [nailgun]
 name=Nailgun Local Repo
-baseurl=file:/var/www/nailgun/centos/fuelweb/x86_64
+baseurl=file:/var/www/nailgun/${OPENSTACK_VERSION}/centos/x86_64
 gpgcheck=0
 EOF
 
@@ -481,7 +513,7 @@ if [ "\$first" = "yes" ]; then
   ipstr="Fuel UI is available on: http://\$ip:8000"
   first=no
 else
-  ipstr=\$(printf "%s\n%51s" "\$ipstr" "http://\$ip:8000")
+  ipstr=\$(printf "%s\n%25s%s" "\$ipstr" " " "http://\$ip:8000")
 fi
 done
 tmpissue=\$(mktemp)
diff --git a/fuel-build/f_opnfv_puppet/puppet/modules/opnfv/manifests/add_packages.pp b/fuel-build/f_opnfv_puppet/puppet/modules/opnfv/manifests/add_packages.pp
new file mode 100644 (file)
index 0000000..ccb3939
--- /dev/null
@@ -0,0 +1,9 @@
+# Class: opnfv::add_packages
+#
+# Ensure added packages are installed:
+#
+
+class opnfv::add_packages {
+  if $::osfamily == 'Debian' {
+  }
+}
index c32a92b..48c4005 100644 (file)
@@ -53,8 +53,17 @@ if $::fuel_settings['nodes'] {
   $base_syslog_hash     = $::fuel_settings['base_syslog']
   $syslog_hash          = $::fuel_settings['syslog']
 
+  $disable_offload      = $::fuel_settings['disable_offload']
+  if $disable_offload {
+    L23network::L3::Ifconfig<||> {
+      ethtool =>     {
+        'K' => ['gso off',  'gro off'],
+      }
+    }
+  }
+
+  $use_neutron = $::fuel_settings['quantum']
 
-  $use_quantum = $::fuel_settings['quantum']
   if (!empty(filter_nodes($::fuel_settings['nodes'], 'role', 'ceph-osd')) or
     $::fuel_settings['storage']['volumes_ceph'] or
     $::fuel_settings['storage']['images_ceph'] or
@@ -66,7 +75,7 @@ if $::fuel_settings['nodes'] {
   }
 
 
-  if $use_quantum {
+  if $use_neutron {
     prepare_network_config($::fuel_settings['network_scheme'])
     #
     $internal_int     = get_network_role_property('management', 'interface')
@@ -77,6 +86,19 @@ if $::fuel_settings['nodes'] {
     if $public_int {
       $public_address = get_network_role_property('ex', 'ipaddr')
       $public_netmask = get_network_role_property('ex', 'netmask')
+
+      # TODO(Xarses): remove this after completing merge of
+      # multiple-cluster-networks
+      L23network::L3::Ifconfig<| title == $public_int |> {
+        default_gateway => true
+      }
+    } else {
+      # TODO(Xarses): remove this after completing merge of
+      # multiple-cluster-networks
+      $fw_admin_int = get_network_role_property('fw-admin', 'interface')
+      L23network::L3::Ifconfig<| title == $fw_admin_int |> {
+        default_gateway => true
+      }
     }
     #
     $storage_address = get_network_role_property('storage', 'ipaddr')
@@ -92,6 +114,13 @@ if $::fuel_settings['nodes'] {
     $internal_br = $node[0]['internal_br']
     $public_int   = $::fuel_settings['public_interface']
     $internal_int = $::fuel_settings['management_interface']
+
+    # TODO(Xarses): remove this after completing merge of
+    # multiple-cluster-networks
+    L23network::L3::Ifconfig<| title == $public_int |> {
+      default_gateway => true
+    }
+
   }
 }
 
@@ -133,6 +162,15 @@ $syslog_log_facility_murano     = 'LOG_LOCAL0'
 $syslog_log_facility_heat       = 'LOG_LOCAL0'
 $syslog_log_facility_sahara     = 'LOG_LOCAL0'
 $syslog_log_facility_ceilometer = 'LOG_LOCAL0'
+$syslog_log_facility_ceph       = 'LOG_LOCAL0'
+
+### Monit ###
+# Monit for compute nodes.
+# If enabled, will install monit and configure its watchdogs to track
+# nova-compute/api/network (and openvswitch service, if neutron enabled)
+# at compute nodes.
+# TODO(bogdando) set to true once monit package shipped with Fuel ISO
+$use_monit = false
 
 $nova_rate_limits = {
   'POST' => 100000,
@@ -167,21 +205,33 @@ case $::operatingsystem {
 class os_common {
   # OPNFV check if pre_deploy.sh has been run, otherwise fail
   class {'opnfv::opncheck': stage => 'opncheck' }
-  if ($::fuel_settings['neutron_mellanox']) and ($::fuel_settings['storage']['iser']) {
+  if ($::fuel_settings['neutron_mellanox']) {
+    if ($::mellanox_mode != 'disabled') {
+      class { 'mellanox_openstack::ofed_recompile' :
+        stage => 'zero',
+      }
+    }
+    if ($::fuel_settings['storage']['iser']) {
       class { 'mellanox_openstack::iser_rename':
-                   stage => 'zero',
-                   storage_parent => $::fuel_settings['neutron_mellanox']['storage_parent'],
-                   iser_interface_name => $::fuel_settings['neutron_mellanox']['iser_interface_name'],
+        stage => 'zero',
+        storage_parent => $::fuel_settings['neutron_mellanox']['storage_parent'],
+        iser_interface_name => $::fuel_settings['neutron_mellanox']['iser_interface_name'],
       }
+      Class['mellanox_openstack::ofed_recompile'] -> Class['mellanox_openstack::iser_rename']
+    }
   }
   class {"l23network::hosts_file": stage => 'netconfig', nodes => $nodes_hash, extras => $extras_hash }
-  class {'l23network': use_ovs=>$use_quantum, stage=> 'netconfig'}
-  if $use_quantum {
+  class {'l23network': use_ovs=>$use_neutron, stage=> 'netconfig'}
+  if $use_neutron {
       class {'advanced_node_netconfig': stage => 'netconfig' }
   } else {
       class {'osnailyfacter::network_setup': stage => 'netconfig'}
   }
 
+  if ($::osfamily == 'RedHat') {
+    package {'irqbalance': ensure => present} -> service {'irqbalance': ensure => running }
+  }
+
   class { 'openstack::firewall':
     stage => 'openstack-firewall',
     nova_vnc_ip_range => $::fuel_settings['management_network_range'],
@@ -256,6 +306,10 @@ class os_common {
     }
   }
 
+  class { 'osnailyfacter::atop':
+    stage => 'first',
+  }
+
   #case $role {
     #    /controller/:          { $hostgroup = 'controller' }
     #    /swift-proxy/: { $hostgroup = 'swift-proxy' }
@@ -296,7 +350,8 @@ class os_common {
   }
 
   class { 'puppet::pull' :
-    master_ip => $::fuel_settings['master_ip'],
+    modules_source   => $::fuel_settings['puppet_modules_source'],
+    manifests_source => $::fuel_settings['puppet_manifests_source'],
   }
 } # OS_COMMON ENDS
 
@@ -317,7 +372,6 @@ node default {
     /^(ha|ha_compact)$/: {
       include "osnailyfacter::cluster_ha"
       class {'os_common':}
-      class {'corosync::commitorder': stage=>'main'}
       class {'opnfv':}
       }
     "rpmcache": { include osnailyfacter::rpmcache }
index 330a699..940beda 100644 (file)
@@ -44,8 +44,17 @@ if $::fuel_settings['nodes'] {
   $base_syslog_hash     = $::fuel_settings['base_syslog']
   $syslog_hash          = $::fuel_settings['syslog']
 
+  $disable_offload      = $::fuel_settings['disable_offload']
+  if $disable_offload {
+    L23network::L3::Ifconfig<||> {
+      ethtool =>     {
+        'K' => ['gso off',  'gro off'],
+      }
+    }
+  }
+
+  $use_neutron = $::fuel_settings['quantum']
 
-  $use_quantum = $::fuel_settings['quantum']
   if (!empty(filter_nodes($::fuel_settings['nodes'], 'role', 'ceph-osd')) or
     $::fuel_settings['storage']['volumes_ceph'] or
     $::fuel_settings['storage']['images_ceph'] or
@@ -57,7 +66,7 @@ if $::fuel_settings['nodes'] {
   }
 
 
-  if $use_quantum {
+  if $use_neutron {
     prepare_network_config($::fuel_settings['network_scheme'])
     #
     $internal_int     = get_network_role_property('management', 'interface')
@@ -68,6 +77,19 @@ if $::fuel_settings['nodes'] {
     if $public_int {
       $public_address = get_network_role_property('ex', 'ipaddr')
       $public_netmask = get_network_role_property('ex', 'netmask')
+
+      # TODO(Xarses): remove this after completing merge of
+      # multiple-cluster-networks
+      L23network::L3::Ifconfig<| title == $public_int |> {
+        default_gateway => true
+      }
+    } else {
+      # TODO(Xarses): remove this after completing merge of
+      # multiple-cluster-networks
+      $fw_admin_int = get_network_role_property('fw-admin', 'interface')
+      L23network::L3::Ifconfig<| title == $fw_admin_int |> {
+        default_gateway => true
+      }
     }
     #
     $storage_address = get_network_role_property('storage', 'ipaddr')
@@ -83,6 +105,13 @@ if $::fuel_settings['nodes'] {
     $internal_br = $node[0]['internal_br']
     $public_int   = $::fuel_settings['public_interface']
     $internal_int = $::fuel_settings['management_interface']
+
+    # TODO(Xarses): remove this after completing merge of
+    # multiple-cluster-networks
+    L23network::L3::Ifconfig<| title == $public_int |> {
+      default_gateway => true
+    }
+
   }
 }
 
@@ -124,6 +153,15 @@ $syslog_log_facility_murano     = 'LOG_LOCAL0'
 $syslog_log_facility_heat       = 'LOG_LOCAL0'
 $syslog_log_facility_sahara     = 'LOG_LOCAL0'
 $syslog_log_facility_ceilometer = 'LOG_LOCAL0'
+$syslog_log_facility_ceph       = 'LOG_LOCAL0'
+
+### Monit ###
+# Monit for compute nodes.
+# If enabled, will install monit and configure its watchdogs to track
+# nova-compute/api/network (and openvswitch service, if neutron enabled)
+# at compute nodes.
+# TODO(bogdando) set to true once monit package shipped with Fuel ISO
+$use_monit = false
 
 $nova_rate_limits = {
   'POST' => 100000,
@@ -156,21 +194,34 @@ case $::operatingsystem {
 }
 
 class os_common {
-  if ($::fuel_settings['neutron_mellanox']) and ($::fuel_settings['storage']['iser']) {
+  if ($::fuel_settings['neutron_mellanox']) {
+    if ($::mellanox_mode != 'disabled') {
+      class { 'mellanox_openstack::ofed_recompile' :
+        stage => 'zero',
+      }
+    }
+    if ($::fuel_settings['storage']['iser']) {
       class { 'mellanox_openstack::iser_rename':
-                   stage => 'zero',
-                   storage_parent => $::fuel_settings['neutron_mellanox']['storage_parent'],
-                   iser_interface_name => $::fuel_settings['neutron_mellanox']['iser_interface_name'],
+        stage => 'zero',
+        storage_parent => $::fuel_settings['neutron_mellanox']['storage_parent'],
+        iser_interface_name => $::fuel_settings['neutron_mellanox']['iser_interface_name'],
       }
+      Class['mellanox_openstack::ofed_recompile'] -> Class['mellanox_openstack::iser_rename']
+    }
   }
+
   class {"l23network::hosts_file": stage => 'netconfig', nodes => $nodes_hash }
-  class {'l23network': use_ovs=>$use_quantum, stage=> 'netconfig'}
-  if $use_quantum {
+  class {'l23network': use_ovs=>$use_neutron, stage=> 'netconfig'}
+  if $use_neutron {
       class {'advanced_node_netconfig': stage => 'netconfig' }
   } else {
       class {'osnailyfacter::network_setup': stage => 'netconfig'}
   }
 
+  if ($::osfamily == 'RedHat') {
+    package {'irqbalance': ensure => present} -> service {'irqbalance': ensure => running }
+  }
+
   class { 'openstack::firewall':
     stage => 'openstack-firewall',
     nova_vnc_ip_range => $::fuel_settings['management_network_range'],
@@ -245,6 +296,10 @@ class os_common {
     }
   }
 
+  class { 'osnailyfacter::atop':
+    stage => 'first',
+  }
+
   #case $role {
     #    /controller/:          { $hostgroup = 'controller' }
     #    /swift-proxy/: { $hostgroup = 'swift-proxy' }
@@ -285,7 +340,8 @@ class os_common {
   }
 
   class { 'puppet::pull' :
-    master_ip => $::fuel_settings['master_ip'],
+    modules_source   => $::fuel_settings['puppet_modules_source'],
+    manifests_source => $::fuel_settings['puppet_manifests_source'],
   }
 } # OS_COMMON ENDS
 
@@ -304,7 +360,6 @@ node default {
     /^(ha|ha_compact)$/: {
       include "osnailyfacter::cluster_ha"
       class {'os_common':}
-      class {'corosync::commitorder': stage=>'main'}
       }
     "rpmcache": { include osnailyfacter::rpmcache }
   }
diff --git a/fuel-build/fuel-main_2.patch b/fuel-build/fuel-main_2.patch
new file mode 100644 (file)
index 0000000..0cea655
--- /dev/null
@@ -0,0 +1,17 @@
+*** fuel-main/sandbox.mk.orig  2015-02-13 12:12:55.362989171 +0100
+--- fuel-main/sandbox.mk       2015-02-13 14:50:39.103017653 +0100
+***************
+*** 71,77 ****
+--- 71,83 ----
+  echo "Updating apt package database"
+  sudo chroot $(SANDBOX_UBUNTU) apt-get update
+  echo "Installing additional packages: $(SANDBOX_DEB_PKGS)"
++ test -e $(SANDBOX_UBUNTU)/sbin/start.orig || mv $(SANDBOX_UBUNTU)/sbin/start $(SANDBOX_UBUNTU)/sbin/start.orig
++ echo "#!/bin/sh" > $(SANDBOX_UBUNTU)/sbin/start
++ echo "exit 0" >> $(SANDBOX_UBUNTU)/sbin/start
++ chmod 755 $(SANDBOX_UBUNTU)/sbin/start
+  test -n "$(SANDBOX_DEB_PKGS)" && sudo chroot $(SANDBOX_UBUNTU) apt-get install --yes $(SANDBOX_DEB_PKGS)
++ test -e $(SANDBOX_UBUNTU)/sbin/start.orig && (cp $(SANDBOX_UBUNTU)/sbin/start.orig $(SANDBOX_UBUNTU)/sbin/start; \
++      rm $(SANDBOX_UBUNTU)/sbin/start.orig)
+  echo "SANDBOX_UBUNTU_UP: done"
+  endef
index 9bcff70..17ef1e1 100644 (file)
@@ -22,7 +22,7 @@ clean:
 
 .PHONY: release
 release:
-       ../tools/deb_unpack python-nova_2014.1.3-fuel5.1.1~mira3_all.deb $(ORIGISO)
+       ../tools/deb_unpack python-nova_*.deb $(ORIGISO)
        patch -s -p0 < nova-console.patch
        ../tools/deb_pack $(VERSION)
        @cp *.deb ../release/packages
index a05af3b..fbc0318 100644 (file)
@@ -1,17 +1,28 @@
---- package/usr/share/pyshared/nova/virt/libvirt/driver.py.org
-+++ package/usr/share/pyshared/nova/virt/libvirt/driver.py
-@@ -3280,10 +3280,10 @@
-             # client app is connected. Thus we can't get away
-             # with a single type=pty console. Instead we have
-             # to configure two separate consoles.
--            consolelog = vconfig.LibvirtConfigGuestSerial()
--            consolelog.type = "file"
--            consolelog.source_path = self._get_console_log_path(instance)
--            guest.add_device(consolelog)
-+            #consolelog = vconfig.LibvirtConfigGuestSerial()
-+            #consolelog.type = "file"
-+            #consolelog.source_path = self._get_console_log_path(instance)
-+            #guest.add_device(consolelog)
-             consolepty = vconfig.LibvirtConfigGuestSerial()
-             consolepty.type = "pty"
+*** package/usr/share/pyshared/nova/virt/libvirt/driver.py.orig        2015-02-16 14:19:53.203052869 +0100
+--- package/usr/share/pyshared/nova/virt/libvirt/driver.py     2015-02-16 14:22:53.065017671 +0100
+***************
+*** 3959,3968 ****
+                  # client app is connected. Thus we can't get away
+                  # with a single type=pty console. Instead we have
+                  # to configure two separate consoles.
+!                 consolelog = vconfig.LibvirtConfigGuestSerial()
+!                 consolelog.type = "file"
+!                 consolelog.source_path = self._get_console_log_path(instance)
+!                 guest.add_device(consolelog)
+  
+              consolepty = vconfig.LibvirtConfigGuestSerial()
+          else:
+--- 3959,3971 ----
+                  # client app is connected. Thus we can't get away
+                  # with a single type=pty console. Instead we have
+                  # to configure two separate consoles.
+!                 # Disabled by OPNFV BEGIN
+!                 # consolelog = vconfig.LibvirtConfigGuestSerial()
+!                 # consolelog.type = "file"
+!                 # consolelog.source_path = self._get_console_log_path(instance)
+!                 # guest.add_device(consolelog)
+!                 pass
+!                 # Disabled by OPNFV END
+  
+              consolepty = vconfig.LibvirtConfigGuestSerial()
+          else: