From ec0606c650706be7444370128624924a3dd1767e Mon Sep 17 00:00:00 2001 From: "Stefan K. Berg" Date: Fri, 13 Feb 2015 17:09:52 +0100 Subject: [PATCH] Update of Fuel based build system to Fuel 6.0.1 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 --- fuel-build/Makefile | 11 ++- fuel-build/docker/runcontext | 3 +- fuel-build/f_isoroot/f_kscfg/ks.cfg | 90 +++++++++++++++------- fuel-build/f_isoroot/f_kscfg/ks.cfg.orig | 90 +++++++++++++++------- .../puppet/modules/opnfv/manifests/add_packages.pp | 9 +++ .../puppet/modules/osnailyfacter/examples/site.pp | 74 +++++++++++++++--- .../modules/osnailyfacter/examples/site.pp.orig | 75 +++++++++++++++--- .../{fuel-main.patches => fuel-main_1.patch} | 0 fuel-build/fuel-main_2.patch | 17 ++++ fuel-build/patch-packages/python-nova/Makefile | 2 +- .../patch-packages/python-nova/nova-console.patch | 45 +++++++---- 11 files changed, 315 insertions(+), 101 deletions(-) create mode 100644 fuel-build/f_opnfv_puppet/puppet/modules/opnfv/manifests/add_packages.pp rename fuel-build/{fuel-main.patches => fuel-main_1.patch} (100%) create mode 100644 fuel-build/fuel-main_2.patch diff --git a/fuel-build/Makefile b/fuel-build/Makefile index 98b108c..eb37b4d 100644 --- a/fuel-build/Makefile +++ b/fuel-build/Makefile @@ -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* diff --git a/fuel-build/docker/runcontext b/fuel-build/docker/runcontext index d4e8b9c..6140fa0 100755 --- a/fuel-build/docker/runcontext +++ b/fuel-build/docker/runcontext @@ -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 diff --git a/fuel-build/f_isoroot/f_kscfg/ks.cfg b/fuel-build/f_isoroot/f_kscfg/ks.cfg index 8194e8d..932e9ac 100755 --- a/fuel-build/f_isoroot/f_kscfg/ks.cfg +++ b/fuel-build/f_isoroot/f_kscfg/ks.cfg @@ -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_isoroot/f_kscfg/ks.cfg.orig b/fuel-build/f_isoroot/f_kscfg/ks.cfg.orig index 8d00dff..44f9f42 100644 --- a/fuel-build/f_isoroot/f_kscfg/ks.cfg.orig +++ b/fuel-build/f_isoroot/f_kscfg/ks.cfg.orig @@ -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 index 0000000..ccb3939 --- /dev/null +++ b/fuel-build/f_opnfv_puppet/puppet/modules/opnfv/manifests/add_packages.pp @@ -0,0 +1,9 @@ +# Class: opnfv::add_packages +# +# Ensure added packages are installed: +# + +class opnfv::add_packages { + if $::osfamily == 'Debian' { + } +} diff --git a/fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp b/fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp index c32a92b..48c4005 100644 --- a/fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp +++ b/fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp @@ -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 } diff --git a/fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp.orig b/fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp.orig index 330a699..940beda 100644 --- a/fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp.orig +++ b/fuel-build/f_osnaily/puppet/modules/osnailyfacter/examples/site.pp.orig @@ -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.patches b/fuel-build/fuel-main_1.patch similarity index 100% rename from fuel-build/fuel-main.patches rename to fuel-build/fuel-main_1.patch diff --git a/fuel-build/fuel-main_2.patch b/fuel-build/fuel-main_2.patch new file mode 100644 index 0000000..0cea655 --- /dev/null +++ b/fuel-build/fuel-main_2.patch @@ -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 diff --git a/fuel-build/patch-packages/python-nova/Makefile b/fuel-build/patch-packages/python-nova/Makefile index 9bcff70..17ef1e1 100644 --- a/fuel-build/patch-packages/python-nova/Makefile +++ b/fuel-build/patch-packages/python-nova/Makefile @@ -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 diff --git a/fuel-build/patch-packages/python-nova/nova-console.patch b/fuel-build/patch-packages/python-nova/nova-console.patch index a05af3b..fbc0318 100644 --- a/fuel-build/patch-packages/python-nova/nova-console.patch +++ b/fuel-build/patch-packages/python-nova/nova-console.patch @@ -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: -- 2.16.6