diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2016-10-01 13:18:11 +0200 |
---|---|---|
committer | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2016-10-09 16:33:43 +0200 |
commit | 42f8585ebb8fffad19a89314659ab9129176c3e9 (patch) | |
tree | e2cf6a4797bcbd036e080541cc3925f8b209549b | |
parent | 6f3a054fc95622f0c002f72c0fac6074bb36c36f (diff) |
build: Rework patch mechanism for Fuel submodules
While refactoring the patching mechanism, take care of:
- Sync submodule handling with Fuel@OPFNV;
- build: Investigate/prepare for moving patches to Fuel@OPNFV;
- build: Investigate divergent fuel-mirror;
- ISO build: cacheid for Fuel comps should not depend on
Armband git commit;
CHANGE:
Rename/shuffle patches while grouping them in "features",
preparing for upstreaming them to Fuel@OPNFV and beyond.
CHANGE:
Allow linking patches for better representing the dependency
between one patch and different features.
e.g. 0001-Add-arch-to-nailgun-release-and-target-image.patch:
- part of `multiarch-fuel`, because it extends Fuel;
- part of `direct-kernel-boot`, as arch is required for that;
- part of `cross-bootstrap`, target image is arch-dependent;
NOTE: Patch links are not staged to Fuel@OPNFV, they only serve
as markers that a specific patch is part of a feature.
CHANGE:
Kill all Fuel component submodules, now handled in Fuel@OPNFV:
- fuel-agent
- fuel-astute
- fuel-library
- fuel-mirror
- fuel-nailgun-agent
- fuel-web
CHANGE:
Move armband-fuel-config.mk to armband git root.
FIXME: m1.micro-Increase-profile-RAM-size-to-128MB.patch is NOT
part of `cross-bootstrap` feature, but patch context says so ...
FIXME: 0001-Add-arm64-deb-repositories-setup.patch is broken at
`make patches-export` by removing spaces at EOL.
v2 -> v3:
* Phony patch support (links to show a patch belongs to a feature);
* Updated README.md
v3 -> v7:
* Re-export Fuel submodules & plugins patches (update patch context);
* Update Cavium mail addresses (s/caviumnetworks.com/cavium.com/);
* Ignore submodule changes;
* Add armband git repo info to gitinfo_fuel.txt at build time;
Implements: ARMBAND-136
Closes-bug: ARMBAND-95
Closes-bug: ARMBAND-93
Closes-bug: ARMBAND-92
Change-Id: I1a236d9f43b2e6dca22055911f696b43c22b5973
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
94 files changed, 868 insertions, 839 deletions
@@ -1,3 +1,4 @@ +.submodules* build.log config.mk ci/clean_cache.sh diff --git a/.gitmodules b/.gitmodules index 1fffefb1..f37e0c96 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,39 +2,19 @@ path = upstream/fuel url = https://gerrit.opnfv.org/gerrit/fuel branch = master -[submodule "fuel-library"] - path = upstream/fuel-library - url = https://github.com/openstack/fuel-library.git - branch = stable/mitaka -[submodule "fuel-web"] - path = upstream/fuel-web - url = https://github.com/openstack/fuel-web.git - branch = stable/mitaka -[submodule "fuel-agent"] - path = upstream/fuel-agent - url = https://github.com/openstack/fuel-agent.git - branch = stable/mitaka -[submodule "fuel-mirror"] - path = upstream/fuel-mirror - url = https://github.com/openstack/fuel-mirror.git - branch = stable/mitaka + ignore = all [submodule "fuel-plugin-opendaylight"] path = upstream/fuel-plugin-opendaylight url = https://github.com/openstack/fuel-plugin-opendaylight.git branch = master -[submodule "fuel-nailgun-agent"] - path = upstream/fuel-nailgun-agent - url = https://github.com/openstack/fuel-nailgun-agent - branch = stable/mitaka + ignore = all [submodule "fuel-plugin-ovs"] path = upstream/fuel-plugin-ovs url = https://github.com/openstack/fuel-plugin-ovs branch = master + ignore = all [submodule "vswitchperf"] path = upstream/vswitchperf url = https://gerrit.opnfv.org/gerrit/vswitchperf.git branch = master -[submodule "fuel-astute"] - path = upstream/fuel-astute - url = https://github.com/openstack/fuel-astute.git - branch = stable/mitaka + ignore = all @@ -8,108 +8,152 @@ ############################################################################## # NOTE: Armband patching consists of: -# - clone upstream repositories to git submodules; -# - checkout submodule commits where set in Fuel@OPNFV's config.mk -# (e.g. FUEL_ASTUTE_COMMIT=...); -# - tag each submodule (before patching) with "armband-workbench-root"; +# - clone upstream repositories to git submodules, tracking remotes; +# - tag each submodule (before patching) with "${A_OPNFV_TAG}-root"; # - apply Armband patches for each submodule; -# - tag each submodule (after patching) with "armband-workbench"; +# - tag each submodule (after patching) with "${OPNFV_TAG}"; +# - stage Fuel submodule patches by copying them to Fuel f_repos/patch dir; # - pass updated repository info to Fuel@OPNFV build system -# (e.g. FUEL_ASTUTE_COMMIT=HEAD) via armband.mk; +# (e.g. FUEL_PLUGIN_ODL_CHANGE="${OPNFV_TAG}") via armband-fuel-config.mk; # NOTE: Long-term goals (Armband repo should merge with Fuel@OPNFV): # - all build related changes should affect Fuel@OPNFV, NOT Armband; -# - Armband make/build system should only handle patching, -# including eventual build related patching of Fuel@OPNFV, -# and then invoke Fuel@OPNFV's build system; +# - Armband make/build system should only handle patching non-Fuel submodules, +# and then invoke Fuel@OPNFV's patch & build system; # - Fuel@OPNFV is made aware of an Armband type build by passing # the "ARMBAND_BASE" env var; -# Fist, inherit Fuel submodule commit references from Fuel@OPNFV -# using "config.mk" as a make target that links to Fuel's config.mk. -# Some values will be overriden at Fuel ISO build time by armband.mk. -include config.mk - export ARMBAND_BASE := $(shell pwd) export OPNFV_GIT_SHA := $(shell git rev-parse HEAD) export REVSTATE -# Prepare for future directory re-layout when merging with Fuel@OPNFV -PATCH_DIR := ${ARMBAND_BASE}/patches -SUBMOD_DIR := ${ARMBAND_BASE}/upstream -FUEL_BASE := ${SUBMOD_DIR}/fuel +include armband-fuel-config.mk all: release -# Use config.mk & clean_cache.sh from Fuel@OPNFV -config.mk: submodules-init - @ln -sf ${FUEL_BASE}/build/config.mk ${ARMBAND_BASE}/config.mk - @ln -sf ${FUEL_BASE}/ci/clean_cache.sh ${ARMBAND_BASE}/ci/clean_cache.sh - # Fetch & update git submodules, checkout remote HEAD .PHONY: submodules-init -submodules-init: - @if [ ! -d ${FUEL_BASE}/build ]; then \ - git submodule -q init; \ - git submodule -q sync; \ - git submodule update --remote; \ +submodules-init: .submodules-init + +.submodules-init: + @if [ -n "${ARMBAND_TRACK_REMOTES}" ]; then \ + git submodule update --init --remote 2>/dev/null; \ + else \ + git submodule update --init 2>/dev/null; \ fi + @ln -sf ${A_FUEL_BASE}/ci/clean_cache.sh ${ARMBAND_BASE}/ci/clean_cache.sh + @touch $@ # Clean any changes made to submodules, checkout Armband root commit .PHONY: submodules-clean -submodules-clean: submodules-init +submodules-clean: .submodules-init + @test ! -d ${F_REPOS_DIR} || $(MAKE) fuel-patches-clean @git submodule -q foreach ' \ git am -q --abort 2>/dev/null; \ - git checkout -q armband-workbench-root 2>/dev/null; \ - git branch -q -D armband-workbench 2>/dev/null; \ - git tag -d armband-workbench-root 2>/dev/null; \ + git checkout -q -f ${A_OPNFV_TAG}-root 2>/dev/null; \ + git branch -q -D opnfv-armband 2>/dev/null; \ + git tag | grep ${A_OPNFV_TAG} | xargs git tag -d > /dev/null 2>&1; \ git reset -q --hard HEAD; \ git clean -xdff' + @rm -f .submodules-patched # Generate patches from submodules .PHONY: patches-export -patches-export: submodules-init +patches-export: .submodules-init @git submodule -q foreach ' \ - mkdir -p ${PATCH_DIR}/$$name; \ - git format-patch --no-signature \ - -o ${PATCH_DIR}/$$name -N armband-workbench-root' - @find ${PATCH_DIR} -name '*.patch' -exec sed -i -e '1d' {} \; + SUB_DIR=${A_PATCH_DIR}/$$name; \ + git tag | awk "!/root/ && /${A_OPNFV_TAG}-fuel/" | while read A_TAG; do \ + SUB_FEATURE=`dirname $${A_TAG#${A_OPNFV_TAG}-fuel/}`; \ + echo "`tput setaf 2`== exporting $$name ($$A_TAG)`tput sgr0`"; \ + mkdir -p $$SUB_DIR/$${SUB_FEATURE} && \ + git format-patch --no-signature --ignore-space-at-eol \ + -o $$SUB_DIR/$$SUB_FEATURE -N $$A_TAG-root..$$A_TAG; \ + sed -i -e "1{/From: /!d}" -e "s/[[:space:]]*$$//" \ + $$SUB_DIR/$$SUB_FEATURE/*.patch; \ + done' # Apply patches from patches/* to respective submodules -# For repos pinned in Fuel@OPNFV's config.mk, checkout pinned commit first .PHONY: patches-import -patches-import: submodules-init - @cd ${SUBMOD_DIR}/fuel-agent && git checkout -q ${FUEL_AGENT_COMMIT} - @cd ${SUBMOD_DIR}/fuel-astute && git checkout -q ${ASTUTE_COMMIT} - @cd ${SUBMOD_DIR}/fuel-library && git checkout -q ${FUELLIB_COMMIT} - @cd ${SUBMOD_DIR}/fuel-mirror && git checkout -q ${FUEL_MIRROR_COMMIT} - @cd ${SUBMOD_DIR}/fuel-nailgun-agent && \ - git checkout -q ${FUEL_NAILGUN_AGENT_COMMIT} - @cd ${SUBMOD_DIR}/fuel-web && git checkout -q ${NAILGUN_COMMIT} +patches-import: .submodules-init .submodules-patched + +.submodules-patched: ${A_PATCHES} + @$(MAKE) submodules-clean @git submodule -q foreach ' \ - mkdir -p ${PATCH_DIR}/$$name; \ - git tag armband-workbench-root; \ - git checkout -q -b armband-workbench; \ - if [ ! -z "$$(ls ${PATCH_DIR}/$$name/)" ]; then \ - echo "-- patching $$name"; \ - git am --whitespace=nowarn \ - --committer-date-is-author-date \ - ${PATCH_DIR}/$$name/*.patch; \ - fi' + SUB_DIR=${A_PATCH_DIR}/$$name; mkdir -p $$SUB_DIR && \ + git tag ${A_OPNFV_TAG}-root && \ + git checkout -q -b opnfv-armband && \ + find $$SUB_DIR -type d | sort | while read p_dir; do \ + SUB_PATCHES=$$(ls $$p_dir/*.patch 2>/dev/null); \ + if [ -n "$$SUB_PATCHES" ]; then \ + SUB_FEATURE=$${p_dir#$$SUB_DIR} \ + SUB_TAG=${A_OPNFV_TAG}-fuel$$SUB_FEATURE/patch; \ + echo "`tput setaf 2`== patching $$name ($$SUB_TAG)`tput sgr0`";\ + git tag $$SUB_TAG-root && git am -3 --whitespace=nowarn \ + --committer-date-is-author-date $$SUB_PATCHES && \ + git tag $$SUB_TAG || exit 1; \ + fi \ + done && \ + git tag ${A_OPNFV_TAG}' + # Staging Fuel@OPNFV patches + @ls -d ${F_SUB_DIR}/* 2>/dev/null | while read p_sub_path; do \ + SUB_NAME=`basename $$p_sub_path`; \ + find ${A_PATCH_DIR}/$$SUB_NAME -name '*.patch' 2>/dev/null -exec sh -c '\ + A_PATCH={}; R_PATCH=$${A_PATCH#${A_PATCH_DIR}/}; \ + F_PATCH=${F_PATCH_DIR}/$${0}/armband/$${R_PATCH#$${0}/}; \ + if [ -f $$F_PATCH ]; then \ + echo "`tput setaf 3`* WARN: $$R_PATCH upstream.`tput sgr0`"; \ + else \ + if [ -h $$A_PATCH ]; then \ + echo "`tput setaf 3`* PHONY: $$R_PATCH`tput sgr0`"; \ + else \ + echo "`tput setaf 6`* Staging $$R_PATCH`tput sgr0`"; \ + mkdir -p `dirname $$F_PATCH` && cp $$A_PATCH $$F_PATCH; \ + fi; \ + fi' "$$SUB_NAME" \; || true ; \ + done + @touch $@ # Pass down clean/deepclean/build to Fuel@OPNFV .PHONY: clean -clean: submodules-init - $(MAKE) -e --no-print-directory -C ${FUEL_BASE}/build clean +clean: .submodules-init + $(MAKE) -e --no-print-directory -C ${F_BUILD_DIR} clean .PHONY: deepclean -deepclean: submodules-init - $(MAKE) -e --no-print-directory -C ${FUEL_BASE}/build deepclean +deepclean: clean + $(MAKE) -e --no-print-directory -C ${F_BUILD_DIR} deepclean + @git submodule deinit -f . + @rm -f .submodules* .PHONY: build -build: - $(MAKE) -e --no-print-directory -C ${FUEL_BASE}/build all +build: patches-import + $(MAKE) -e --no-print-directory -C ${F_BUILD_DIR} all .PHONY: release release: export LC_ALL=en_US.UTF-8 -release: submodules-clean patches-import build +release: build + +############################################################################## +# Fuel@OPNFV patch operations - to be used only during development +############################################################################## + +# Apply all Fuel@OPNFV patches, including Armband patches +.PHONY: fuel-patches-import +fuel-patches-import: .submodules-patched fuel-patches-clean + $(MAKE) -e -C ${F_REPOS_DIR} patches-import + +# Export Fuel@OPNFV patches, including Armband patches +.PHONY: fuel-patches-export +fuel-patches-export: .submodules-patched + $(MAKE) -e -C ${F_REPOS_DIR} patches-export + @ls -d ${F_PATCH_DIR}/* 2>/dev/null | while read p_sub_path; do \ + SUB_NAME=`basename $$p_sub_path`; \ + if [ -d $$p_sub_path/armband ]; then \ + echo "`tput setaf 6`* Pulling $$SUB_NAME patches.`tput sgr0`"; \ + cp -R $$p_sub_path/armband/* ${A_PATCH_DIR}/$$SUB_NAME && \ + rm -rf $$p_sub_path/armband; \ + fi \ + done + +.PHONY: fuel-patches-clean +fuel-patches-clean: + $(MAKE) -e -C ${F_REPOS_DIR} clean @@ -17,30 +17,26 @@ The standard workflow should look as follows: $ make patches-import This will result in creation of: - - a tag called `armband-workbench-root` at the same commit as Fuel@OPNFV - hard sets in `build/config.mk` (inside fuel submodule); - - a new branch `armband-workbench` which will hold all the armband work. + - a tag called `${A_OPNFV_TAG}-root` at submodule remote branch HEAD; + - a new branch `opnfv-armband` which will hold all the armband work. Then each patch is applied on this new branch with `git-am`. + The new HEAD is tagged with `${A_OPNFV_TAG}`. 4. Modify sub-projects for whatever you need. Commit your changes when you want them taken into account in the build. + NOTE: If you want to re-export patches, make sure to move the tag + `${A_OPNFV_TAG}` to the latest commit that should be included. + 5. Build with: $ make build 6. Re-create patches via: $ make patches-export - Each commit on `armband-workbench` branch of each subproject will be + Each commit on `opnfv-armband` branch of each subproject will be exported to `patches/subproject/` via `git format-patch`. - NOTE: DO NOT commit changed submodules. Remember to commit only patches! - - Commiting changed submodules (`git diff` will list something like: - `Subproject commit: {hash}`) will break the repo, as the new commit hash - is non-existant in the upstream repo, hence anybody cloning the repository - later will fail on `make submodules-init`. - 7. Clean workbench branches and tags with: $ make submodules-clean @@ -52,3 +48,24 @@ and point it to `upstream/*` directory, i.e.: $ git submodule -b stable/mitaka add --name fuel-web \ https://github.com/openstack/fuel-web.git upstream/fuel-web + +Fuel@OPNFV submodule patch development +-------------------------------------- +Fuel-submodules (fuel-astute, ... , fuel-ui) patches also reside in Armband, +like previously described patches that are applied to Armband submodules, +but they are not directly applied to any submodule in Armband. +Instead, they are copied (staged) to Fuel@OPNFV submodule, which will +automatically pick them up and apply them to its own submodules +(fuel-astute, ... , fuel-ui) during ISO build. + +The following helpers are available for working with patches for +Fuel-submodules (fuel-astute, ... , fuel-ui): + +1. Clean Fuel-submodules (fuel-astute, ... , fuel-ui) patches + $ make fuel-patches-clean + +2. Import Fuel-submodules staged patches + $ make fuel-patches-import + +3. Export Fuel-submodules patches + $ make fuel-patches-export diff --git a/armband-fuel-config.mk b/armband-fuel-config.mk new file mode 100644 index 00000000..63699b44 --- /dev/null +++ b/armband-fuel-config.mk @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2016 Enea AB and others. +# Alexandru.Avadanii@enea.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 +############################################################################## + +# Prepare for merging with Fuel@OPNFV by keeping the same patch dir structure +A_FUEL_BASE := ${ARMBAND_BASE}/upstream/fuel +A_PATCH_DIR := ${ARMBAND_BASE}/patches +A_OPNFV_TAG = armband-opnfv +A_PATCHES = $(shell find ${A_PATCH_DIR} -name '*.patch') +F_BUILD_DIR := ${A_FUEL_BASE}/build +F_REPOS_DIR := ${F_BUILD_DIR}/f_repos +F_PATCH_DIR := ${F_REPOS_DIR}/patch +F_SUB_DIR := ${F_REPOS_DIR}/sub + +# To enable remote tracking, set the following var to any non-empty string. +# Leaving this var empty will bind each git submodule to its saved commit. +ARMBAND_TRACK_REMOTES ?= yes + +# Armband plugins, supported archs & specific info +export PLUGINS := f_odlpluginbuild f_bgpvpn-pluginbuild f_ovs-nsh-dpdk-pluginbuild +export UBUNTU_ARCH := amd64 arm64 +export PRODNO := OPNFV_A_FUEL +export MIRROR_MOS_UBUNTU := linux.enea.com +export EXTRA_RPM_REPOS := armband,http://linux.enea.com/mos-repos/centos/mos9.0-centos7/armband/x86_64,10 + +# Temporary fuel-plugin-builder repo info for runtime patching +export FPB_REPO := https://github.com/openstack/fuel-plugins +export FPB_BRANCH := master +export FPB_CHANGE := refs/changes/31/311031/2 + +# Armband git submodules for Fuel/OPNFV components +export FUEL_PLUGIN_ODL_REPO := ${ARMBAND_BASE}/upstream/fuel-plugin-opendaylight +export FUEL_PLUGIN_ODL_BRANCH := opnfv-armband +export FUEL_PLUGIN_ODL_CHANGE := ${A_OPNFV_TAG} +export OPNFV_QUAGGE_PACKAGING_REPO := https://github.com/alexandruavadanii/opnfv-quagga-packaging + +export OVS_NSH_DPDK_REPO := ${ARMBAND_BASE}/upstream/fuel-plugin-ovs +export OVS_NSH_DPDK_BRANCH := ${A_OPNFV_TAG} + +export VSPERF_REPO := ${ARMBAND_BASE}/upstream/vswitchperf +export VSPERF_BRANCH := opnfv-armband +export VSPERF_CHANGE := ${A_OPNFV_TAG} diff --git a/ci/build.sh b/ci/build.sh index 9ae43f30..0b46a7d7 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -15,5 +15,5 @@ export OPNFV_GIT_SHA=$(git rev-parse HEAD) export LOCAL_CACHE_ARCH_NAME="armband-cache" # Initialize Armband git submodules & apply patches first -make -C ${ARMBAND_BASE} submodules-clean patches-import +make -C ${ARMBAND_BASE} patches-import cd ${ARMBAND_BASE}/upstream/fuel/ci && ./build.sh $* diff --git a/ci/deploy.sh b/ci/deploy.sh index 40abe67d..179b168f 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -10,7 +10,7 @@ set -e cd $WORKSPACE -make submodules-clean submodules-init patches-import +make patches-import # source local environment variables if ! [ -z $LAB_CONFIG_URL ]; then diff --git a/patches/fuel-agent/0001-Use-qemu-debootstrap-for-image-creation.patch b/patches/fuel-agent/cross-bootstrap/0001-Use-qemu-debootstrap-for-image-creation.patch index 6f28d8a3..54e8027e 100644 --- a/patches/fuel-agent/0001-Use-qemu-debootstrap-for-image-creation.patch +++ b/patches/fuel-agent/cross-bootstrap/0001-Use-qemu-debootstrap-for-image-creation.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Thu, 25 Feb 2016 13:38:14 +0100 Subject: [PATCH] Use qemu-debootstrap for image creation @@ -17,10 +17,12 @@ not yet implemented. 7 files changed, 29 insertions(+), 5 deletions(-) diff --git a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/commands/build.py b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/commands/build.py -index ca2d3e1..b0d410d 100644 +index b4e9a05..a22d319 100644 --- a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/commands/build.py +++ b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/commands/build.py -@@ -166,4 +166,12 @@ class BuildCommand(command.Command): +@@ -171,6 +171,14 @@ class BuildCommand(command.Command): + " by ssh still rejected by default! This password actual" + " only for tty login!"), ) + parser.add_argument( + '--target_arch', @@ -31,27 +33,27 @@ index ca2d3e1..b0d410d 100644 + ) + return parser - + def take_action(self, parsed_args): diff --git a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py -index 0219961..6e60fb8 100644 +index c09d421..a535075 100644 --- a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py +++ b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py -@@ -172,7 +172,8 @@ def make_bootstrap(data): - +@@ -161,7 +161,8 @@ def make_bootstrap(data): + LOG.info("Try to build image with data:\n%s", yaml.safe_dump(bootdata)) - + - opts = ['--data_driver', 'bootstrap_build_image'] + opts = ['--data_driver', 'bootstrap_build_image', + '--target_arch', data['target_arch']] if data.get('image_build_dir'): opts.extend(['--image_build_dir', data['image_build_dir']]) - + diff --git a/debian/control b/debian/control -index 0a6f947..189dc00 100644 +index d24450c..e843980 100644 --- a/debian/control +++ b/debian/control -@@ -36,6 +36,8 @@ Pre-Depends: dpkg (>= 1.15.6~) +@@ -37,6 +37,8 @@ Pre-Depends: dpkg (>= 1.15.6~) Depends: bzip2, cloud-utils, debootstrap, @@ -61,26 +63,27 @@ index 0a6f947..189dc00 100644 ethtool, gdisk, diff --git a/fuel_agent/manager.py b/fuel_agent/manager.py -index 15cc5d8..f613aef 100644 +index df54f65..ba1ab78 100644 --- a/fuel_agent/manager.py +++ b/fuel_agent/manager.py -@@ -18,5 +18,6 @@ import shutil - +@@ -19,6 +19,7 @@ import signal + import tempfile + from oslo_config import cfg +from oslo_config import types import six import yaml - -@@ -33,6 +34,8 @@ from fuel_agent.utils import md as mu + +@@ -34,6 +35,8 @@ from fuel_agent.utils import md as mu from fuel_agent.utils import partition as pu from fuel_agent.utils import utils - + +ArchType = types.String(choices=['amd64', 'arm64']) + opts = [ cfg.StrOpt( 'nc_template_path', -@@ -153,6 +156,13 @@ cli_opts = [ +@@ -192,6 +195,13 @@ cli_opts = [ default='/tmp', help='Directory where the image is supposed to be built', ), @@ -92,9 +95,9 @@ index 15cc5d8..f613aef 100644 + 'debootstrap', + ), ] - + CONF = cfg.CONF -@@ -551,7 +561,8 @@ class Manager(object): +@@ -724,7 +734,8 @@ class Manager(object): LOG.debug('Preventing services from being get started') bu.suppress_services_start(chroot) LOG.debug('Installing base operating system using debootstrap') @@ -105,10 +108,10 @@ index 15cc5d8..f613aef 100644 proxies=proxies.proxies, direct_repo_addr=proxies.direct_repo_addr_list) diff --git a/fuel_agent/tests/test_build_utils.py b/fuel_agent/tests/test_build_utils.py -index 82c3462..ac5ae82 100644 +index 54f79f9..0ec466f 100644 --- a/fuel_agent/tests/test_build_utils.py +++ b/fuel_agent/tests/test_build_utils.py -@@ -42,7 +42,7 @@ class BuildUtilsTestCase(unittest2.TestCase): +@@ -43,7 +43,7 @@ class BuildUtilsTestCase(unittest2.TestCase): def test_run_debootstrap(self, mock_exec, mock_environ): bu.run_debootstrap('uri', 'suite', 'chroot', 'arch', attempts=2) mock_exec.assert_called_once_with( @@ -117,7 +120,7 @@ index 82c3462..ac5ae82 100644 .format(','.join(bu.ADDITIONAL_DEBOOTSTRAP_PACKAGES)), '--verbose', '--no-check-gpg', '--arch=arch', 'suite', 'chroot', 'uri', attempts=2, env_variables={}) -@@ -53,7 +53,7 @@ class BuildUtilsTestCase(unittest2.TestCase): +@@ -54,7 +54,7 @@ class BuildUtilsTestCase(unittest2.TestCase): bu.run_debootstrap('uri', 'suite', 'chroot', 'arch', eatmydata=True, attempts=2) mock_exec.assert_called_once_with( @@ -127,20 +130,20 @@ index 82c3462..ac5ae82 100644 '--verbose', '--no-check-gpg', '--arch=arch', '--include=eatmydata', 'suite', diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py -index 7247965..af41b2b 100644 +index b1ecc0f..2950ad8 100644 --- a/fuel_agent/utils/build.py +++ b/fuel_agent/utils/build.py -@@ -80,7 +80,7 @@ def run_debootstrap(uri, suite, chroot, arch='amd64', eatmydata=False, +@@ -76,7 +76,7 @@ def run_debootstrap(uri, suite, chroot, arch='amd64', eatmydata=False, env_vars['no_proxy'] = ','.join(direct_repo_addr) LOG.debug('Setting no_proxy for: {0}'.format(env_vars['no_proxy'])) - + - cmds = ['debootstrap', + cmds = ['qemu-debootstrap', '--include={0}'.format(",".join(ADDITIONAL_DEBOOTSTRAP_PACKAGES)), '--verbose', '--no-check-gpg', '--arch={0}'.format(arch)] diff --git a/specs/fuel-agent.spec b/specs/fuel-agent.spec -index 5c37600..a43f693 100644 +index 72cd6a1..18af4b9 100644 --- a/specs/fuel-agent.spec +++ b/specs/fuel-agent.spec @@ -50,6 +50,8 @@ Requires: xfsprogs diff --git a/patches/fuel-agent/0002-Add-FLASH_KERNEL_SKIP-true.patch b/patches/fuel-agent/cross-bootstrap/0002-Add-FLASH_KERNEL_SKIP-true.patch index 0c2f2ac9..91483ac1 100644 --- a/patches/fuel-agent/0002-Add-FLASH_KERNEL_SKIP-true.patch +++ b/patches/fuel-agent/cross-bootstrap/0002-Add-FLASH_KERNEL_SKIP-true.patch @@ -8,14 +8,14 @@ FIXME: Add nice description of the issue at hand. 1 file changed, 1 insertion(+) diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py -index af41b2b..6f31732 100644 +index 2950ad8..74cbfd8 100644 --- a/fuel_agent/utils/build.py +++ b/fuel_agent/utils/build.py -@@ -97,6 +97,7 @@ def set_apt_get_env(): +@@ -93,6 +93,7 @@ def set_apt_get_env(): # NOTE(agordeev): disable any confirmations/questions from apt-get side os.environ['DEBIAN_FRONTEND'] = 'noninteractive' os.environ['DEBCONF_NONINTERACTIVE_SEEN'] = 'true' + os.environ['FLASH_KERNEL_SKIP'] = 'true' os.environ['LC_ALL'] = os.environ['LANG'] = os.environ['LANGUAGE'] = 'C' - - + + diff --git a/patches/fuel-agent/0003-Fix-qemu-user-static-replacement.patch b/patches/fuel-agent/cross-bootstrap/0003-Fix-qemu-user-static-replacement.patch index a4f65d68..3c849591 100644 --- a/patches/fuel-agent/0003-Fix-qemu-user-static-replacement.patch +++ b/patches/fuel-agent/cross-bootstrap/0003-Fix-qemu-user-static-replacement.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Sun, 6 Mar 2016 16:09:39 +0100 Subject: [PATCH] Fix qemu-user-static replacement @@ -8,13 +8,13 @@ Subject: [PATCH] Fix qemu-user-static replacement 2 files changed, 24 insertions(+) diff --git a/fuel_agent/manager.py b/fuel_agent/manager.py -index f613aef..6322a10 100644 +index ba1ab78..637c99a 100644 --- a/fuel_agent/manager.py +++ b/fuel_agent/manager.py -@@ -587,6 +587,12 @@ class Manager(object): +@@ -760,6 +760,12 @@ class Manager(object): fu.mount_bind(chroot, '/proc') bu.populate_basic_dev(chroot) - + + # we need to make sure that qemu-{target_arch}-static binary is + # not replaced inside chroot because we're possibly using it + # through qemu-debootstrap @@ -25,13 +25,13 @@ index f613aef..6322a10 100644 # Umount chroot tree and remove images tmp files if not bu.stop_chrooted_processes(chroot, signal=signal.SIGTERM): diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py -index 6f31732..abd762e 100644 +index 74cbfd8..1bc0a5f 100644 --- a/fuel_agent/utils/build.py +++ b/fuel_agent/utils/build.py -@@ -312,6 +312,24 @@ def populate_basic_dev(chroot): +@@ -320,6 +320,24 @@ def populate_basic_dev(chroot): utils.execute('chroot', chroot, 'ln', '-s', '/proc/self/fd', '/dev/fd') - + +def prevent_qemu_replacement(chroot, arch): + """Prevents qemu-user-static replacement inside chroot. + @@ -50,6 +50,6 @@ index 6f31732..abd762e 100644 + '--rename', '/usr/sbin/update-binfmts') + utils.execute('chroot', chroot, 'ln', '-sf', '/bin/true', + '/usr/sbin/update-binfmts') - + def create_sparse_tmp_file(dir, suffix, size=8192): """Creates sparse file. diff --git a/patches/fuel-agent/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch b/patches/fuel-agent/cross-bootstrap/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch index 37017e1a..75602951 100644 --- a/patches/fuel-agent/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch +++ b/patches/fuel-agent/cross-bootstrap/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch @@ -16,10 +16,10 @@ For more information, see [1]. 2 files changed, 38 insertions(+) diff --git a/fuel_agent/manager.py b/fuel_agent/manager.py -index 6322a10..843c40b 100644 +index 637c99a..86f76b9 100644 --- a/fuel_agent/manager.py +++ b/fuel_agent/manager.py -@@ -836,10 +836,15 @@ class Manager(object): +@@ -1037,10 +1037,15 @@ class Manager(object): direct_repo_addrs=driver_os.proxies.direct_repo_addr_list) self._update_metadata_with_repos( metadata, driver_os.repos) @@ -35,17 +35,18 @@ index 6322a10..843c40b 100644 if hasattr(bs_scheme, 'certs') and bs_scheme.certs: bu.copy_update_certs(bs_scheme.certs, chroot) bu.run_apt_get(chroot, packages=packages, -@@ -873,5 +878,6 @@ class Manager(object): +@@ -1084,6 +1089,7 @@ class Manager(object): + add_multipath_conf=False) # restore disabled hosts/resolv files bu.restore_resolv_conf(chroot) + bu.restore_newaliases(chroot) metadata['all_packages'] = bu.get_installed_packages(chroot) # We need to recompress initramfs with new compression: bu.recompress_initramfs( -@@ -964,6 +970,11 @@ class Manager(object): +@@ -1175,6 +1181,11 @@ class Manager(object): self._update_metadata_with_repos( metadata, driver_os.repos) - + + # Prevent common cross-debootstraping problem w/ newaliases & qemu + # inet_addr_local[getifaddrs]: getifaddrs: Address family not supp + LOG.debug('Preventing newaliases from running inside chroot') @@ -54,10 +55,10 @@ index 6322a10..843c40b 100644 LOG.debug('Installing packages using apt-get: %s', ' '.join(packages)) bu.run_apt_get(chroot, packages=packages, -@@ -974,6 +985,9 @@ class Manager(object): +@@ -1187,6 +1198,9 @@ class Manager(object): allow_unsigned_file=CONF.allow_unsigned_file, force_ipv4_file=CONF.force_ipv4_file) - + + LOG.debug('Restoring newaliases command inside chroot') + bu.restore_newaliases(chroot) + @@ -65,13 +66,13 @@ index 6322a10..843c40b 100644 'inside chroot before trying to umount chroot') if not bu.stop_chrooted_processes(chroot, signal=signal.SIGTERM): diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py -index abd762e..e11ceba 100644 +index 1bc0a5f..5761cc5 100644 --- a/fuel_agent/utils/build.py +++ b/fuel_agent/utils/build.py -@@ -331,6 +331,30 @@ def prevent_qemu_replacement(chroot, arch): +@@ -339,6 +339,30 @@ def prevent_qemu_replacement(chroot, arch): utils.execute('chroot', chroot, 'ln', '-sf', '/bin/true', '/usr/sbin/update-binfmts') - + +def prevent_qemu_newaliases(chroot): + """Prevents running newaliases under qemu-user-static inside chroot. + @@ -98,4 +99,4 @@ index abd762e..e11ceba 100644 + def create_sparse_tmp_file(dir, suffix, size=8192): """Creates sparse file. - + diff --git a/patches/fuel-agent/0009-FIXME-Add-force-yes-to-apt-get-dist-upgrade.patch b/patches/fuel-agent/cross-bootstrap/0005-FIXME-Add-force-yes-to-apt-get-dist-upgrade.patch index 90428c57..654ddeab 100644 --- a/patches/fuel-agent/0009-FIXME-Add-force-yes-to-apt-get-dist-upgrade.patch +++ b/patches/fuel-agent/cross-bootstrap/0005-FIXME-Add-force-yes-to-apt-get-dist-upgrade.patch @@ -17,10 +17,10 @@ the same behavior. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py -index e11ceba..8cca26d 100644 +index 5761cc5..5557810 100644 --- a/fuel_agent/utils/build.py +++ b/fuel_agent/utils/build.py -@@ -111,7 +111,7 @@ def run_apt_get(chroot, packages, eatmydata=False, attempts=10): +@@ -107,7 +107,7 @@ def run_apt_get(chroot, packages, eatmydata=False, attempts=10): time in X times. """ for action in ('update', 'dist-upgrade'): diff --git a/patches/fuel-agent/0010-UX-Update-bootstrap-target-build-time-estimate.patch b/patches/fuel-agent/cross-bootstrap/0006-UX-Update-bootstrap-target-build-time-estimate.patch index d8a7588f..3c68e5ad 100644 --- a/patches/fuel-agent/0010-UX-Update-bootstrap-target-build-time-estimate.patch +++ b/patches/fuel-agent/cross-bootstrap/0006-UX-Update-bootstrap-target-build-time-estimate.patch @@ -12,10 +12,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py -index 6e60fb8..95bc08a 100644 +index a535075..c7d67e9 100644 --- a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py +++ b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py -@@ -180,9 +180,12 @@ def make_bootstrap(data): +@@ -169,9 +169,12 @@ def make_bootstrap(data): OSLO_CONF = cfg.CONF OSLO_CONF(opts, project='fuel-agent') mngr = manager.Manager(bootdata) @@ -29,5 +29,5 @@ index 6e60fb8..95bc08a 100644 + " and selected bootstrap architecture(s)." + " This ISO supports AArch64 only.") mngr.do_mkbootstrap() - + return bootdata['bootstrap']['uuid'], bootdata['output'] diff --git a/patches/fuel-agent/0011-kernel-flavor-linux-image-generic-lts-xenial.patch b/patches/fuel-agent/kernel-bump/0001-kernel-flavor-linux-image-generic-lts-xenial.patch index c94bc4aa..7c29c5c5 100644 --- a/patches/fuel-agent/0011-kernel-flavor-linux-image-generic-lts-xenial.patch +++ b/patches/fuel-agent/kernel-bump/0001-kernel-flavor-linux-image-generic-lts-xenial.patch @@ -12,10 +12,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py -index 5ff1cf6..1463f22 100644 +index f70d165..ef0e79a 100644 --- a/fuel_agent/drivers/nailgun.py +++ b/fuel_agent/drivers/nailgun.py -@@ -734,8 +734,8 @@ class NailgunBuildImage(BaseDataDriver): +@@ -727,8 +727,8 @@ class NailgunBuildImage(BaseDataDriver): "i40e-dkms", "linux-firmware", "linux-firmware-nonfree", diff --git a/patches/fuel-agent/0005-Add-esp-partition-flag.patch b/patches/fuel-agent/multiarch-efi/0001-Add-esp-partition-flag.patch index 2ecec416..1b067b10 100644 --- a/patches/fuel-agent/0005-Add-esp-partition-flag.patch +++ b/patches/fuel-agent/multiarch-efi/0001-Add-esp-partition-flag.patch @@ -12,32 +12,32 @@ to properly format and mount it during do_partitioning deployment phase. 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py -index c2fef69..0ae81f9 100644 +index ef0e79a..94280e8 100644 --- a/fuel_agent/drivers/nailgun.py +++ b/fuel_agent/drivers/nailgun.py -@@ -324,7 +324,7 @@ class Nailgun(BaseDataDriver): +@@ -354,7 +354,7 @@ class Nailgun(BaseDataDriver): # uefi partition (for future use) LOG.debug('Adding UEFI partition on disk %s: size=200' % disk['name']) - parted.add_partition(size=200) + parted.add_partition(size=200, flags=['esp']) - + LOG.debug('Looping over all volumes on disk %s' % disk['name']) for volume in disk['volumes']: diff --git a/fuel_agent/utils/partition.py b/fuel_agent/utils/partition.py -index acdd0b3..86349d2 100644 +index f7126b1..b811511 100644 --- a/fuel_agent/utils/partition.py +++ b/fuel_agent/utils/partition.py -@@ -93,7 +93,7 @@ def set_partition_flag(dev, num, flag, state='on'): +@@ -94,7 +94,7 @@ def set_partition_flag(dev, num, flag, state='on'): :param dev: A device file, e.g. /dev/sda. :param num: Partition number :param flag: Flag name. Must be one of 'bios_grub', 'legacy_boot', - 'boot', 'raid', 'lvm' + 'boot', 'raid', 'lvm', 'esp' :param state: Desiable flag state. 'on' or 'off'. Default is 'on'. - + :returns: None -@@ -103,7 +103,7 @@ def set_partition_flag(dev, num, flag, state='on'): +@@ -104,7 +104,7 @@ def set_partition_flag(dev, num, flag, state='on'): # parted supports more flags but we are interested in # setting only this subset of them. # not all of these flags are compatible with one another. diff --git a/patches/fuel-agent/0007-Add-fs-for-efi-partition.patch b/patches/fuel-agent/multiarch-efi/0002-Add-fs-for-efi-partition.patch index 0fb94215..c18c7093 100644 --- a/patches/fuel-agent/0007-Add-fs-for-efi-partition.patch +++ b/patches/fuel-agent/multiarch-efi/0002-Add-fs-for-efi-partition.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Tue, 8 Mar 2016 21:08:55 +0100 Subject: [PATCH] Add fs for efi partition @@ -9,10 +9,10 @@ Subject: [PATCH] Add fs for efi partition 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/debian/control b/debian/control -index 189dc00..acfda35 100644 +index e843980..c763ab9 100644 --- a/debian/control +++ b/debian/control -@@ -39,6 +39,7 @@ Depends: bzip2, +@@ -40,6 +40,7 @@ Depends: bzip2, qemu-user-static, binfmt-support, dmidecode, @@ -21,10 +21,10 @@ index 189dc00..acfda35 100644 gdisk, genisoimage, diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py -index bc532b4..f092865 100644 +index 94280e8..1463f22 100644 --- a/fuel_agent/drivers/nailgun.py +++ b/fuel_agent/drivers/nailgun.py -@@ -81,6 +81,9 @@ class Nailgun(BaseDataDriver): +@@ -82,6 +82,9 @@ class Nailgun(BaseDataDriver): # was already allocated on first matching volume # or not self._boot_partition_done = False @@ -34,7 +34,7 @@ index bc532b4..f092865 100644 # this var is used as a flag that /boot fs # has already been added. we need this to # get rid of md over all disks for /boot partition. -@@ -321,10 +324,14 @@ class Nailgun(BaseDataDriver): +@@ -351,10 +354,14 @@ class Nailgun(BaseDataDriver): LOG.debug('Adding bios_grub partition on disk %s: size=24' % disk['name']) parted.add_partition(size=24, flags=['bios_grub']) @@ -49,11 +49,11 @@ index bc532b4..f092865 100644 + partition_scheme.add_fs(device=prt.name, mount='/boot/efi', + fs_type='vfat') + self._esp_partition_done = True - + LOG.debug('Looping over all volumes on disk %s' % disk['name']) for volume in disk['volumes']: diff --git a/specs/fuel-agent.spec b/specs/fuel-agent.spec -index a43f693..c2b9b51 100644 +index 18af4b9..8604e57 100644 --- a/specs/fuel-agent.spec +++ b/specs/fuel-agent.spec @@ -50,6 +50,7 @@ Requires: xfsprogs diff --git a/patches/fuel-astute/0001-Erase-EFI-boot-entry-on-EFI-systems.patch b/patches/fuel-astute/multiarch-efi/0001-Erase-EFI-boot-entry-on-EFI-systems.patch index 905834df..fa8a83a7 100644 --- a/patches/fuel-astute/0001-Erase-EFI-boot-entry-on-EFI-systems.patch +++ b/patches/fuel-astute/multiarch-efi/0001-Erase-EFI-boot-entry-on-EFI-systems.patch @@ -32,7 +32,7 @@ index 3eb98e8..3bac36f 100644 +++ b/mcagents/erase_node.rb @@ -112,6 +112,10 @@ module MCollective File.open('/proc/sys/kernel/panic','w') {|file| file.write("10\n")} - + begin + # clear out EFI boot entry on EFI-enabled systems + system("(which efibootmgr > /dev/null 2>&1 && efibootmgr | "\ diff --git a/patches/fuel-library/0011-ceph-Fix-obsolete-XFS-mount-param-delaylog.patch b/patches/fuel-library/0001-ceph-Fix-obsolete-XFS-mount-param-delaylog.patch index 0ddad114..facde8f2 100644 --- a/patches/fuel-library/0011-ceph-Fix-obsolete-XFS-mount-param-delaylog.patch +++ b/patches/fuel-library/0001-ceph-Fix-obsolete-XFS-mount-param-delaylog.patch @@ -16,12 +16,12 @@ older than 4.0. 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/deployment/puppet/osnailyfacter/manifests/ceph/ceph_osd.pp b/deployment/puppet/osnailyfacter/manifests/ceph/ceph_osd.pp -index f7da80e..22aab33 100644 +index 2480f18..0957010 100644 --- a/deployment/puppet/osnailyfacter/manifests/ceph/ceph_osd.pp +++ b/deployment/puppet/osnailyfacter/manifests/ceph/ceph_osd.pp -@@ -50,4 +50,11 @@ class {'ceph': +@@ -35,6 +35,13 @@ class osnailyfacter::ceph::ceph_osd { } - + if $ceph_tuning_settings_hash != {} { + if versioncmp($::kernelmajversion, '4.0') < 0 { + # FIXME(armband): XFS mount opt delaylog is deprecated in kernels >=4.0. @@ -31,11 +31,13 @@ index f7da80e..22aab33 100644 + ], ',') + } ceph_conf { -diff --git a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp b/deployment/puppet/osnailyfacter/modular/globals/globals.pp -index 268a5b1..69aed7b 100644 + 'global/debug_default' : value => $debug; + 'global/max_open_files' : value => $ceph_tuning_settings_hash['max_open_files']; +diff --git a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp b/deployment/puppet/osnailyfacter/manifests/globals/globals.pp +index 854d297..7345d66 100644 --- a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp +++ b/deployment/puppet/osnailyfacter/manifests/globals/globals.pp -@@ -123,7 +123,7 @@ if ($storage_hash['volumes_ceph'] or $storage_hash['images_ceph'] or $storage_ha +@@ -148,7 +148,7 @@ class osnailyfacter::globals::globals { $ceph_tuning_settings = { 'max_open_files' => pick($storage_tuning_settings['max_open_files'], '131072'), 'osd_mkfs_type' => pick($storage_tuning_settings['osd_mkfs_type'], 'xfs'), diff --git a/patches/fuel-library/0012-ceilometer-Fix-libvirt-bin-group-name-for-armband.patch b/patches/fuel-library/0002-ceilometer-Fix-libvirt-bin-group-name-for-armband.patch index 36353a89..17700a9a 100644 --- a/patches/fuel-library/0012-ceilometer-Fix-libvirt-bin-group-name-for-armband.patch +++ b/patches/fuel-library/0002-ceilometer-Fix-libvirt-bin-group-name-for-armband.patch @@ -25,11 +25,12 @@ This patch extends the version checking introduced in [1]: 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/deployment/puppet/openstack_tasks/manifests/ceilometer/compute.pp b/deployment/puppet/openstack_tasks/manifests/ceilometer/compute.pp -index 8311731..1d7af2b 100644 +index af4f0e5..e8dbfcf 100644 --- a/deployment/puppet/openstack_tasks/manifests/ceilometer/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/ceilometer/compute.pp -@@ -195,7 +195,13 @@ class openstack::ceilometer ( - +@@ -93,8 +93,14 @@ class openstack_tasks::ceilometer::compute { + } + if $::operatingsystem == 'Ubuntu' and $::ceilometer::params::libvirt_group { + # Armband libvirt-bin deb package (1.3.2 version) creates 'libvirtd' group on Ubuntu + if (versioncmp($::libvirt_package_version, '1.3.2') >= 0) { diff --git a/patches/fuel-library/0016-compute-Fix-virtlogd-not-started-after-install.patch b/patches/fuel-library/0003-compute-Fix-virtlogd-not-started-after-install.patch index 752ef6f8..a9a49331 100644 --- a/patches/fuel-library/0016-compute-Fix-virtlogd-not-started-after-install.patch +++ b/patches/fuel-library/0003-compute-Fix-virtlogd-not-started-after-install.patch @@ -18,11 +18,11 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -index 33e851f..3647f9b 100644 +index 164bd70..211fefa 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -@@ -373,7 +373,8 @@ class openstack_tasks::roles::compute { - +@@ -337,7 +337,8 @@ class openstack_tasks::roles::compute { + # TODO(aschultz): work around until https://review.openstack.org/#/c/306677/ # lands. - if $::os_package_type == 'ubuntu' { diff --git a/patches/fuel-library/0005-Disable-usb-tablet-for-aarch64.patch b/patches/fuel-library/arm64-bug-fixes/0001-nova-config-Disable-usb-tablet-for-aarch64.patch index 1109656c..f4e19229 100644 --- a/patches/fuel-library/0005-Disable-usb-tablet-for-aarch64.patch +++ b/patches/fuel-library/arm64-bug-fixes/0001-nova-config-Disable-usb-tablet-for-aarch64.patch @@ -1,16 +1,18 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Tue, 15 Mar 2016 11:33:52 +0100 Subject: [PATCH] nova config: Disable usb tablet for aarch64 --- - deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 12 ++++++++++++ - 1 file changed, 12 insertions(+) + deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 4 ++++ + 1 file changed, 4 insertions(+) diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -index ca1b2c4..c0349dc 100644 +index 211fefa..4240126 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -@@ -316,3 +316,7 @@ class openstack::compute ( +@@ -379,6 +379,10 @@ class openstack_tasks::roles::compute { + } + nova_config { + 'libvirt/use_usb_tablet': value => $::architecture ? { + /(arm64|aarch64)/ => false, @@ -18,3 +20,4 @@ index ca1b2c4..c0349dc 100644 + }; 'libvirt/live_migration_flag': value => 'VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST'; 'libvirt/block_migration_flag': value => 'VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_NON_SHARED_INC'; + 'DEFAULT/connection_type': value => 'libvirt'; diff --git a/patches/fuel-library/0007-Install-vgabios-and-link-for-aarch64.patch b/patches/fuel-library/arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch index 04e2abf6..da152ead 100644 --- a/patches/fuel-library/0007-Install-vgabios-and-link-for-aarch64.patch +++ b/patches/fuel-library/arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch @@ -7,16 +7,18 @@ install it by default on AArch64 and create missing link in </usr/share/qemu> to </usr/share/vgabios/vgabios.bin>. Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> --- - deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 12 ++++++++++++ - 1 file changed, 12 insertions(+) + deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 8 ++++++++ + 1 file changed, 8 insertions(+) diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -index ca1b2c4..c0349dc 100644 +index 4240126..b18fa7b 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -@@ -364,3 +368,11 @@ class openstack::compute ( +@@ -409,6 +409,14 @@ class openstack_tasks::roles::compute { + vncserver_listen => '0.0.0.0', + remove_unused_original_minimum_age_seconds => pick($nova_hash_real['remove_unused_original_minimum_age_seconds'], '86400'), libvirt_service_name => $::nova::params::libvirt_service_name, + } -> + package { 'vgabios': @@ -27,4 +29,5 @@ index ca1b2c4..c0349dc 100644 + target => '/usr/share/vgabios/vgabios.bin', + replace => false, } - + + class { '::nova::migration::libvirt': diff --git a/patches/fuel-library/0008-nova-Update-vga-console-defaults-for-armv7-aarch64.patch b/patches/fuel-library/arm64-bug-fixes/0003-nova-Update-vga-console-defaults-for-armv7-aarch64.patch index c289bd8d..9e9c3d53 100644 --- a/patches/fuel-library/0008-nova-Update-vga-console-defaults-for-armv7-aarch64.patch +++ b/patches/fuel-library/arm64-bug-fixes/0003-nova-Update-vga-console-defaults-for-armv7-aarch64.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Tue, 22 Mar 2016 12:05:09 +0100 Subject: [PATCH] nova: Update vga, console defaults for armv7, aarch64 @@ -7,18 +7,18 @@ armv7 and aarch64 VMs require video=vga, and since most applications use PL011 serial driver for guests, adding console=ttyAMA0 is also a nice UX addition. --- - .../openstack/files/nova-libvirt-vga-console.patch | 39 ++++++++++++++++++++++ - deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 19 +++++++++++ - 2 files changed, 58 insertions(+) + .../openstack/files/nova-libvirt-vga-console.patch | 40 ++++++++++++++++++++++ + .../openstack_tasks/manifests/roles/compute.pp | 19 ++++++++++ + 2 files changed, 59 insertions(+) create mode 100644 deployment/puppet/openstack/files/nova-libvirt-vga-console.patch diff --git a/deployment/puppet/openstack/files/nova-libvirt-vga-console.patch b/deployment/puppet/openstack/files/nova-libvirt-vga-console.patch new file mode 100644 -index 0000000..c5f8e5a +index 0000000..3594276 --- /dev/null +++ b/deployment/puppet/openstack/files/nova-libvirt-vga-console.patch @@ -0,0 +1,40 @@ -+From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> ++From: Stanislaw Kardach <stanislaw.kardach@cavium.com> +Date: Tue, 22 Mar 2016 12:05:09 +0100 +Subject: [PATCH] Update vga, console defaults for armv7 and aarch64 + @@ -27,7 +27,7 @@ index 0000000..c5f8e5a +use PL011 serial driver for guests, adding console=ttyAMA0 is also +a nice UX addition. + -+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> ++Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +--- + @@ -59,26 +59,31 @@ index 0000000..c5f8e5a + # so use 'vga' instead when running on Power hardware. + video.type = 'vga' diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -index c0349dc..46b1801 100644 +index b18fa7b..2f0f2a8 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -@@ -157,4 +157,10 @@ class openstack::compute ( +@@ -158,6 +158,12 @@ class openstack_tasks::roles::compute { include ::nova::params -+ + + if ! defined(Package['patch']) { + package { 'patch': + ensure => 'present', + } + } - ++ case $::osfamily { -@@ -250,3 +256,4 @@ class openstack::compute ( - + 'RedHat': { + # From legacy libvirt.pp +@@ -290,6 +296,7 @@ class openstack_tasks::roles::compute { + } + $notify_on_state_change = 'vm_and_task_state' + $nova_path = '/usr/lib/python2.7/dist-packages/nova' - -@@ -273,5 +280,17 @@ class openstack::compute ( + + class { '::nova': + rpc_backend => $rpc_backend_real, +@@ -311,6 +318,18 @@ class openstack_tasks::roles::compute { memcached_servers => $memcached_addresses, cinder_catalog_info => pick($nova_hash_real['cinder_catalog_info'], 'volumev2:cinderv2:internalURL'), rabbit_heartbeat_timeout_threshold => $::os_service_default, @@ -95,4 +100,5 @@ index c0349dc..46b1801 100644 + cwd => $nova_path, + require => [Package['patch']], } - + + class { '::nova::availability_zone': diff --git a/patches/fuel-library/0009-nova-AArch64-enable-hugepage-support.patch b/patches/fuel-library/arm64-bug-fixes/0004-nova-AArch64-enable-hugepage-support.patch index 16e06ba8..ab0fb664 100644 --- a/patches/fuel-library/0009-nova-AArch64-enable-hugepage-support.patch +++ b/patches/fuel-library/arm64-bug-fixes/0004-nova-AArch64-enable-hugepage-support.patch @@ -17,7 +17,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> diff --git a/deployment/puppet/openstack/files/nova-AArch64-enable-hugepage-support.patch b/deployment/puppet/openstack/files/nova-AArch64-enable-hugepage-support.patch new file mode 100644 -index 0000000..847cab6 +index 0000000..72d6bfc --- /dev/null +++ b/deployment/puppet/openstack/files/nova-AArch64-enable-hugepage-support.patch @@ -0,0 +1,47 @@ @@ -39,13 +39,13 @@ index 0000000..847cab6 +@@ -156,6 +156,9 @@ def canonicalize(name): + if newname == "amd64": + newname = X86_64 -+ ++ ++ if newname == "aarch64": ++ newname = AARCH64 ++ + if not is_valid(newname): + raise exception.InvalidArchitectureName(arch=name) -+ ++ +diff --git a/virt/libvirt/driver.py a/virt/libvirt/driver.py +index bac17cf..0e0bcae 100644 +--- a/virt/libvirt/driver.py @@ -53,7 +53,7 @@ index 0000000..847cab6 +@@ -5206,7 +5206,7 @@ class LibvirtDriver(driver.ComputeDriver): + self._bad_libvirt_numa_version_warn = True + return False -+ ++ +- support_matrix = {(arch.I686, arch.X86_64): MIN_LIBVIRT_NUMA_VERSION, ++ support_matrix = {(arch.I686, arch.X86_64, arch.AARCH64): MIN_LIBVIRT_NUMA_VERSION, + (arch.PPC64, @@ -69,10 +69,10 @@ index 0000000..847cab6 + return ((caps.host.cpu.arch in supported_archs) and + self._host.has_min_version(MIN_LIBVIRT_HUGEPAGE_VERSION, diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -index 3647f9b..c53409c 100644 +index 2f0f2a8..dc61033 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -@@ -347,6 +347,18 @@ class openstack_tasks::roles::compute { +@@ -330,6 +330,18 @@ class openstack_tasks::roles::compute { unless => "patch -p1 -R -N --dry-run < ${nova_path}/libvirt-vga-console.patch", cwd => $nova_path, require => [Package['patch']], @@ -89,5 +89,5 @@ index 3647f9b..c53409c 100644 + cwd => $nova_path, + require => [Package['patch']], } - + class { '::nova::availability_zone': diff --git a/patches/fuel-library/0006-upload_cirros-Add-direct-kernel-boot-support.patch b/patches/fuel-library/direct-kernel-boot/0001-upload_cirros-Add-direct-kernel-boot-support.patch index ab4100c6..f3eb0748 100644 --- a/patches/fuel-library/0006-upload_cirros-Add-direct-kernel-boot-support.patch +++ b/patches/fuel-library/direct-kernel-boot/0001-upload_cirros-Add-direct-kernel-boot-support.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Tue, 15 Mar 2016 15:01:34 +0100 Subject: [PATCH] upload_cirros: Add direct kernel boot support. @@ -8,14 +8,15 @@ images (disk formats `AKI` and `ARI`). Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> --- - .../osnailyfacter/modular/astute/upload_cirros.rb | 52 +++++++++++++++++++++- - 1 file changed, 50 insertions(+), 2 deletions(-) + .../osnailyfacter/modular/astute/upload_cirros.rb | 55 ++++++++++++++++++++-- + 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb b/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb -index f0441b0..a619f3f 100755 +index f0441b0..371d051 100755 --- a/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb +++ b/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb -@@ -52,11 +52,11 @@ def image_list +@@ -51,12 +51,12 @@ end + def image_list stdout = `glance --verbose image-list` return_code = $?.exitstatus - images = [] @@ -32,7 +33,7 @@ index f0441b0..a619f3f 100755 @@ -78,6 +78,16 @@ EOF [ stdout, return_code ] end - + +# Calls glance update-image with a given property and value +# Supported properties: 'kernel-id', 'ramdisk-id' +def update_image(image_id, property, value) @@ -46,7 +47,7 @@ index f0441b0..a619f3f 100755 # check if Glance is online # waited until the glance is started because when vCenter used as a glance # backend launch may takes up to 1 minute. -@@ -133,7 +142,7 @@ end +@@ -133,7 +143,7 @@ end # return true if image has been uploaded and active def check_image(image) list_of_images = image_list @@ -55,7 +56,7 @@ index f0441b0..a619f3f 100755 return true end return false -@@ -142,7 +151,7 @@ end +@@ -144,7 +154,7 @@ end # the first one def cleanup_image(image) list_of_images = image_list @@ -64,10 +65,10 @@ index f0441b0..a619f3f 100755 delete_image(image['img_name']) end end -@@ -157,6 +166,41 @@ def delete_image(image_name) +@@ -157,6 +167,41 @@ def delete_image(image_name) [ stdout, return_code ] end - + +# For each disk image try to find a kernel and initramfs images and +# attach then to it via kernel_id and ramdisk_id glance properties. +def connect_dependant_images(images) @@ -104,9 +105,9 @@ index f0441b0..a619f3f 100755 +end + ######################## - + wait_for_glance -@@ -180,6 +226,8 @@ if errors > 0 +@@ -180,6 +225,8 @@ if errors > 0 cleanup_image(image) end exit 1 diff --git a/patches/fuel-library/0010-nova-Fix-inject-for-direct-boot-with-part-table.patch b/patches/fuel-library/direct-kernel-boot/0002-nova-Fix-inject-for-direct-boot-with-part-table.patch index 372386a3..7cc743af 100644 --- a/patches/fuel-library/0010-nova-Fix-inject-for-direct-boot-with-part-table.patch +++ b/patches/fuel-library/direct-kernel-boot/0002-nova-Fix-inject-for-direct-boot-with-part-table.patch @@ -10,16 +10,16 @@ to a partition (instead of the whole disk). [1] https://bugs.launchpad.net/nova/+bug/1290455 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> --- .../openstack/files/nova-libvirt-inject.patch | 44 ++++++++++++++++++++++ - deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 12 ++++++ + .../openstack_tasks/manifests/roles/compute.pp | 12 ++++++ 2 files changed, 56 insertions(+) create mode 100644 deployment/puppet/openstack/files/nova-libvirt-inject.patch diff --git a/deployment/puppet/openstack/files/nova-libvirt-inject.patch b/deployment/puppet/openstack/files/nova-libvirt-inject.patch new file mode 100644 -index 0000000..9cbfe5f +index 0000000..b86927e --- /dev/null +++ b/deployment/puppet/openstack/files/nova-libvirt-inject.patch @@ -0,0 +1,44 @@ @@ -35,7 +35,7 @@ index 0000000..9cbfe5f +[1] https://bugs.launchpad.net/nova/+bug/1290455 + +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> ++Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> +--- + +diff --git a/virt/libvirt/driver.py b/virt/libvirt/driver.py @@ -68,10 +68,12 @@ index 0000000..9cbfe5f + if target_partition == 0: + target_partition = None diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -index 46b1801..d42d6a1 100644 +index dc61033..3fcfb51 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -@@ -281,4 +281,16 @@ class openstack::compute ( +@@ -319,6 +319,18 @@ class openstack_tasks::roles::compute { + cinder_catalog_info => pick($nova_hash_real['cinder_catalog_info'], 'volumev2:cinderv2:internalURL'), + rabbit_heartbeat_timeout_threshold => $::os_service_default, } -> + # FIXME(armband): Fix inject for part image direct boot (bug LP #1469308) + file { "${nova_path}/libvirt-inject.patch": diff --git a/patches/fuel-library/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch b/patches/fuel-library/multiarch-efi/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch index 963356b2..262bd994 100644 --- a/patches/fuel-library/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch +++ b/patches/fuel-library/multiarch-efi/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Sun, 21 Feb 2016 16:29:52 +0100 Subject: [PATCH] Add arm64 templates to cobbler and nailgun @@ -11,7 +11,7 @@ Limitation: grub2 needs to be installed directly on the root (/) of a device or partition, as the MAC-files will search for /grub/grub.cfg on the available partitions -Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> Signed-off-by: Matei Valeanu <Matei.Valeanu@enea.com> --- deployment/puppet/cobbler/manifests/server.pp | 36 ++++++++++++++++++++++ @@ -38,7 +38,7 @@ index 891dff7..52936d5 100644 @@ -297,6 +297,42 @@ class cobbler::server ( notify => [Service[$cobbler_service], Exec['cobbler_sync']], } - + + file { '/etc/cobbler/pxe/efidefault.template': + content => template('cobbler/efidefault.template.erb'), + owner => 'root', @@ -85,7 +85,7 @@ index d70f8de..98278e9 100644 @@ -41,5 +41,7 @@ dhcp-no-override # by assigning IPs one by one instead of using hash algorithm. dhcp-sequential-ip - + +dhcp-match=set:arm64,93,11 +dhcp-boot=net:arm64,grub/grub-aarch64.efi,boothost,<%= @next_server %> dhcp-option=6,<%= @name_server %> @@ -156,13 +156,13 @@ index 6762153..25f8067 100644 @@ -66,9 +66,11 @@ d-i apt-setup/mirror/error select Retry # Use network mirror d-i apt-setup/use_mirror boolean true - + +<% if @arch == 'amd64' %> # Select architecture to amd64. That's very important to dpkg, since # by default we have both amd64 and i386. d-i apt-setup/multiarch string amd64 +<% end %> - + # You can choose to install restricted and universe software, or to install # software from the backports repository. diff --git a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp @@ -170,7 +170,7 @@ index 493ffc6..909fc92 100644 --- a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp +++ b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp @@ -53,17 +53,21 @@ class fuel::auxiliaryrepos( - + exec { 'create_ubuntu_repo_dirs': path => '/bin:/sbin:/usr/bin:/usr/sbin', - command => "bash -c \"mkdir -p ${ubuntu_dir}/pool/{main,restricted} ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-amd64/\"", @@ -182,7 +182,7 @@ index 493ffc6..909fc92 100644 + test -d ${ubuntu_dir}/dists/auxiliary/main/binary-arm64 && \ + test -d ${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64", } - + exec { 'create_ubuntu_repo_Packages': path => '/bin:/sbin:/usr/bin:/usr/sbin', - command => "bash -c \"touch ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-amd64/Packages\"", @@ -193,7 +193,7 @@ index 493ffc6..909fc92 100644 + test -f ${ubuntu_dir}/dists/auxiliary/main/binary-arm64/Packages && \ + test -f ${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64/Packages", } - + file { $release_files: diff --git a/deployment/puppet/fuel/manifests/cobbler.pp b/deployment/puppet/fuel/manifests/cobbler.pp index b403733..c89027d 100644 @@ -202,7 +202,7 @@ index b403733..c89027d 100644 @@ -114,12 +114,9 @@ class fuel::cobbler( require => Class['::cobbler::server'], } - + - file { '/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed': - content => template('cobbler/preseed/ubuntu-1404.preseed.erb'), - owner => 'root', @@ -213,12 +213,12 @@ index b403733..c89027d 100644 + path =>'/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed', + arch => "amd64", } -> - + cobbler_distro { 'ubuntu_1404_x86_64': @@ -132,6 +129,21 @@ class fuel::cobbler( require => Class['::cobbler::server'], } - + + fuel::cobbler::preseed { 'ubuntu_1404_arm64.preseed': + path => '/var/lib/cobbler/kickstarts/ubuntu-arm64.preseed', + arch => "arm64", @@ -240,7 +240,7 @@ index b403733..c89027d 100644 @@ -152,6 +164,16 @@ class fuel::cobbler( require => Cobbler_distro['ubuntu_1404_x86_64'], } - + + cobbler_profile { 'ubuntu_1404_arm64': + kickstart => '/var/lib/cobbler/kickstarts/ubuntu-arm64.preseed', + kopts => 'console=ttyAMA0,115200 console=ttyS0,115200 net.ifnames=0 biosdevname=0 netcfg/choose_interface=eth0 netcfg/dhcp_timeout=120 netcfg/link_detection_timeout=20', diff --git a/patches/fuel-library/0014-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch b/patches/fuel-library/multiarch-efi/0002-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch index 14d06ef5..14d06ef5 100644 --- a/patches/fuel-library/0014-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch +++ b/patches/fuel-library/multiarch-efi/0002-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch diff --git a/patches/fuel-library/0003-Make-qemu-kvm-architecture-aware.patch b/patches/fuel-library/multiarch-fuel/0001-Make-qemu-kvm-architecture-aware.patch index 25ec082e..ef1b8554 100644 --- a/patches/fuel-library/0003-Make-qemu-kvm-architecture-aware.patch +++ b/patches/fuel-library/multiarch-fuel/0001-Make-qemu-kvm-architecture-aware.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Wed, 24 Feb 2016 20:07:06 +0100 Subject: [PATCH] Make qemu-kvm architecture aware @@ -7,10 +7,12 @@ Subject: [PATCH] Make qemu-kvm architecture aware 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -index b2339bc..ca1b2c4 100644 +index 3fcfb51..c53409c 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp -@@ -169,7 +169,12 @@ class openstack_tasks::compute ( +@@ -167,9 +167,14 @@ class openstack_tasks::roles::compute { + case $::osfamily { + 'RedHat': { # From legacy libvirt.pp + # Guard against some exotic distros with their `uname -m` + $arch = $::architecture ? { @@ -23,5 +25,5 @@ index b2339bc..ca1b2c4 100644 + command => "/bin/ln -sf /usr/libexec/qemu-kvm /usr/bin/qemu-system-${arch}", + creates => "/usr/bin/qemu-system-${arch}", } - + package { 'avahi': diff --git a/patches/fuel-library/0004-Make-TestVM-creation-architecture-aware.patch b/patches/fuel-library/multiarch-fuel/0002-Make-TestVM-creation-architecture-aware.patch index 417727ec..325b51d4 100644 --- a/patches/fuel-library/0004-Make-TestVM-creation-architecture-aware.patch +++ b/patches/fuel-library/multiarch-fuel/0002-Make-TestVM-creation-architecture-aware.patch @@ -1,7 +1,6 @@ -From ec3299c72eae195106092a646409564b5b3eb560 Mon Sep 17 00:00:00 2001 -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Wed, 24 Feb 2016 20:08:24 +0100 -Subject: [PATCH 10/20] Make TestVM creation architecture aware +Subject: [PATCH] Make TestVM creation architecture aware This depends on cirros-testvm package to contain both amd64 and arm64 images. @@ -24,7 +23,7 @@ index 84e202e..cff06e0 100644 + /(arm64|aarch64)/ => 'aarch64', + default => 'x86_64', + } - + package { 'cirros-testvm': ensure => "present" @@ -17,14 +21,14 @@ class openstack::img::cirros ( @@ -34,7 +33,7 @@ index 84e202e..cff06e0 100644 - command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /opt/vm/cirros-x86_64-disk.img", + command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /opt/vm/cirros-${arch}-disk.img", unless => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index && (/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index | grep ${img_name})", - + } } 'Debian': { @@ -42,7 +41,7 @@ index 84e202e..cff06e0 100644 - command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /usr/share/cirros-testvm/cirros-x86_64-disk.img", + command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /usr/share/cirros-testvm/cirros-${arch}-disk.img", unless => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index && (/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index | grep ${img_name})", - + } diff --git a/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp b/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp index 70fef32..dfefcbe 100644 @@ -51,7 +50,7 @@ index 70fef32..dfefcbe 100644 @@ -4,6 +4,17 @@ define osnailyfacter::generate_vms::vm_config( $details = $name $id = $details['id'] - + + case $::architecture { + 'arm64', 'aarch64': { + $machine_arch = 'aarch64' diff --git a/patches/fuel-library/0002-Add-arm64-for-auxiliary-repos.patch b/patches/fuel-library/multiarch-mirrors/0001-Add-arm64-for-auxiliary-repos.patch index 2edabc66..6d8b0248 100644 --- a/patches/fuel-library/0002-Add-arm64-for-auxiliary-repos.patch +++ b/patches/fuel-library/multiarch-mirrors/0001-Add-arm64-for-auxiliary-repos.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Wed, 24 Feb 2016 20:05:25 +0100 Subject: [PATCH] Add arm64 for auxiliary repos @@ -20,10 +20,10 @@ index 2d5ce58..03f84b8 100644 Components: main restricted Description: Auxiliary diff --git a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp -index 720943d..91adb3e 100644 +index 909fc92..4ec5d05 100644 --- a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp +++ b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp -@@ -40,7 +40,9 @@ class nailgun::auxiliaryrepos( +@@ -45,7 +45,9 @@ class fuel::auxiliaryrepos( $release_files = [ "${ubuntu_dir}/dists/auxiliary/Release", "${ubuntu_dir}/dists/auxiliary/main/binary-amd64/Release", @@ -31,6 +31,6 @@ index 720943d..91adb3e 100644 + "${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64/Release", + "${ubuntu_dir}/dists/auxiliary/main/binary-arm64/Release", + "${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64/Release"] - + Exec['create_ubuntu_repo_dirs'] -> Exec['create_ubuntu_repo_Packages'] -> diff --git a/patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch b/patches/fuel-library/mysql-sst-provider/0001-Allow-configuring-MySQL-WSREP-SST-provider.patch index 6d9bc8c7..632aa8f3 100644 --- a/patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch +++ b/patches/fuel-library/mysql-sst-provider/0001-Allow-configuring-MySQL-WSREP-SST-provider.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Wed, 20 Apr 2016 14:54:42 -0700 Subject: [PATCH] Allow configuring MySQL WSREP SST provider @@ -15,30 +15,32 @@ This patch is tied to a patch in fuel-web that introduces configuration options for WSREP SST provider and in case nothing is specified, it will choose `xtrabackup-v2`. -Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> --- deployment/puppet/osnailyfacter/manifests/database/database.pp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/deployment/puppet/osnailyfacter/manifests/database/database.pp b/deployment/puppet/osnailyfacter/manifests/database/database.pp -index 1755c34..0cfbc8c 100644 +index e741ff8..be19eb5 100644 --- a/deployment/puppet/osnailyfacter/manifests/database/database.pp +++ b/deployment/puppet/osnailyfacter/manifests/database/database.pp -@@ -8,4 +8,5 @@ class osnailyfacter::database::database { +@@ -8,6 +8,7 @@ class osnailyfacter::database::database { $use_syslog = hiera('use_syslog', true) $primary_controller = hiera('primary_controller') $mysql_hash = hiera_hash('mysql', {}) + $wsrep_hash = hiera_hash('mysql_wsrep', {}) $debug = pick($mysql_hash['debug'], hiera('debug', false)) -@@ -22,6 +23,7 @@ class osnailyfacter::database::database { - + + $mgmt_iface = get_network_role_property('mgmt/database', 'interface') +@@ -17,6 +18,7 @@ class osnailyfacter::database::database { + $mysql_root_password = $mysql_hash['root_password'] $enabled = pick($mysql_hash['enabled'], true) + $wsrep_sst_method = pick($wsrep_hash['wsrep_method'], 'xtrabackup-v2') - + $galera_node_address = get_network_role_property('mgmt/database', 'ipaddr') $galera_nodes = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('database_nodes'), 'mgmt/database')) -@@ -216,7 +218,7 @@ class osnailyfacter::database::database { +@@ -211,7 +213,7 @@ class osnailyfacter::database::database { 'wsrep_cluster_name' => $galera_cluster_name, 'wsrep_provider_options' => $wsrep_provider_options, 'wsrep_slave_threads' => $wsrep_slave_threads, @@ -47,7 +49,7 @@ index 1755c34..0cfbc8c 100644 #TODO (sgolovatiuk): fix this, should be a specific user not root 'wsrep_sst_auth' => "\"root:${mysql_root_password}\"", 'wsrep_node_address' => $galera_node_address, -@@ -269,7 +271,7 @@ class osnailyfacter::database::database { +@@ -264,7 +266,7 @@ class osnailyfacter::database::database { wsrep_group_comm_port => $wsrep_group_comm_port, bind_address => $galera_node_address, local_ip => $galera_node_address, @@ -55,4 +57,4 @@ index 1755c34..0cfbc8c 100644 + wsrep_sst_method => $wsrep_sst_method, override_options => $override_options, } - + diff --git a/patches/fuel-library/0015-Set-net.ipv4.ip_nonlocal_bind-1-for-vrouter-namespace.patch b/patches/fuel-library/upstream-backports/0001-Set-net.ipv4.ip_nonlocal_bind-1-for-vrouter-namespac.patch index 86318bb0..281ef231 100644 --- a/patches/fuel-library/0015-Set-net.ipv4.ip_nonlocal_bind-1-for-vrouter-namespace.patch +++ b/patches/fuel-library/upstream-backports/0001-Set-net.ipv4.ip_nonlocal_bind-1-for-vrouter-namespac.patch @@ -15,21 +15,21 @@ index cdd814c..49cbd17 100644 --- a/files/fuel-ha-utils/ocf/ns_dns +++ b/files/fuel-ha-utils/ocf/ns_dns @@ -140,7 +140,7 @@ exit $OCF_SUCCESS - + check_ns() { local ns=`ip netns list | grep "$OCF_RESKEY_ns"` - [ $ns != $OCF_RESKEY_ns ] && return $OCF_ERR_GENERIC + [ "$ns" != $OCF_RESKEY_ns ] && return $OCF_ERR_GENERIC return $OCF_SUCCESS } - + @@ -150,6 +150,7 @@ get_ns() { - + ocf_run ip netns add $OCF_RESKEY_ns rc=$? + ocf_run $RUN_IN_NS /sbin/sysctl -w net.ipv4.ip_nonlocal_bind=1 ocf_run $RUN_IN_NS ip link set up dev lo - + return $rc diff --git a/files/fuel-ha-utils/ocf/ns_vrouter b/files/fuel-ha-utils/ocf/ns_vrouter index a65e9cf..5cc6c98 100644 @@ -43,12 +43,12 @@ index a65e9cf..5cc6c98 100644 + [[ "$ns" != $OCF_RESKEY_ns ]] && return $OCF_ERR_GENERIC return $OCF_SUCCESS } - + @@ -197,6 +197,7 @@ get_ns() { - + ocf_run ip netns add $OCF_RESKEY_ns rc=$? + ocf_run $RUN_IN_NS /sbin/sysctl -w net.ipv4.ip_nonlocal_bind=1 ocf_run $RUN_IN_NS ip link set up dev lo ocf_log debug "${LH} added netns ${OCF_RESKEY_ns} and set up lo" - + diff --git a/patches/fuel-library/0017-Always-wait-for-MySQL-sync-on-service-refresh.patch b/patches/fuel-library/upstream-backports/0002-Always-wait-for-MySQL-sync-on-service-refresh.patch index e0704110..d7fac948 100644 --- a/patches/fuel-library/0017-Always-wait-for-MySQL-sync-on-service-refresh.patch +++ b/patches/fuel-library/upstream-backports/0002-Always-wait-for-MySQL-sync-on-service-refresh.patch @@ -1,6 +1,6 @@ From: dmburmistrov <dmburmistrov@mirantis.com> Date: Thu, 18 Aug 2016 21:30:26 +0300 -Subject: Always wait for MySQL sync on service refresh +Subject: [PATCH] Always wait for MySQL sync on service refresh Always trigger Exec['wait-for-sync'] on MySQL service refresh. @@ -14,21 +14,21 @@ Change-Id: I82ec0d46eff217daedc1bd07c67069498c515c44 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/deployment/puppet/cluster/manifests/mysql.pp b/deployment/puppet/cluster/manifests/mysql.pp -index 0b766c5..055b931 100644 +index c36b65d..f483cf6 100644 --- a/deployment/puppet/cluster/manifests/mysql.pp +++ b/deployment/puppet/cluster/manifests/mysql.pp -@@ -111,7 +111,7 @@ class cluster::mysql ( +@@ -104,7 +104,7 @@ class cluster::mysql ( require => Package['mysql-server'], } ~> - + - exec { 'wait-initial-sync': + exec { 'wait-for-sync': path => '/bin:/sbin:/usr/bin:/usr/sbin', command => "mysql ${user_password_string} -Nbe \"show status like 'wsrep_local_state_comment'\" | grep -q -e Synced && sleep 10", try_sleep => 10, -@@ -126,7 +126,7 @@ class cluster::mysql ( +@@ -119,7 +119,7 @@ class cluster::mysql ( } - + Exec['create-init-file'] -> - Service<| title == $service_name |> -> - Exec['wait-initial-sync'] -> @@ -37,17 +37,17 @@ index 0b766c5..055b931 100644 Exec['rm-init-file'] } diff --git a/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb b/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb -index be00056..e4d62c4 100644 +index cf2c719..72c8c2f 100644 --- a/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb +++ b/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb -@@ -39,12 +39,16 @@ describe 'cluster::mysql' do +@@ -34,12 +34,16 @@ describe 'cluster::mysql' do /'username'@'localhost' IDENTIFIED BY 'password'/ ) should contain_exec('create-init-file').that_comes_before('Service[mysqld]') - should contain_exec('create-init-file').that_notifies('Exec[wait-initial-sync]') + should contain_exec('create-init-file').that_notifies('Exec[wait-for-sync]') end - + it 'creates exec to remove init-file' do should contain_exec('rm-init-file') end @@ -56,5 +56,5 @@ index be00056..e4d62c4 100644 + should contain_exec('wait-for-sync').that_subscribes_to('Service[mysqld]') + end end - + end diff --git a/patches/fuel-library/0018-Fix-MySQL-logging-dir-permissions-for-syslog.patch b/patches/fuel-library/upstream-backports/0003-Fix-MySQL-logging-dir-permissions-for-syslog.patch index da6acac8..7dfede1b 100644 --- a/patches/fuel-library/0018-Fix-MySQL-logging-dir-permissions-for-syslog.patch +++ b/patches/fuel-library/upstream-backports/0003-Fix-MySQL-logging-dir-permissions-for-syslog.patch @@ -1,6 +1,6 @@ From: Maksim Malchuk <mmalchuk@mirantis.com> Date: Wed, 24 Aug 2016 00:15:02 +0300 -Subject: Fix MySQL logging dir permissions for syslog +Subject: [PATCH] Fix MySQL logging dir permissions for syslog This change fixes permissions for MySQL logging directory to enable syslogd create and write logs files into it. @@ -22,7 +22,7 @@ index f483cf6..7bc8874 100644 @@ -118,8 +118,16 @@ class cluster::mysql ( onlyif => 'test -f /tmp/wsrep-init-file', } - + + file { 'fix-log-dir': + ensure => directory, + path => '/var/log/mysql', @@ -51,11 +51,11 @@ index 72c8c2f..ad3fc1b 100644 + should contain_exec('create-init-file').that_comes_before('File[fix-log-dir]') should contain_exec('create-init-file').that_notifies('Exec[wait-for-sync]') end - + @@ -41,6 +41,15 @@ describe 'cluster::mysql' do should contain_exec('rm-init-file') end - + + it 'should have correct permissions for logging directory' do + should contain_file('fix-log-dir').with( + :ensure => 'directory', @@ -75,7 +75,7 @@ index d4ad8d0..2c4c5c5 100644 @@ -261,6 +261,15 @@ describe manifest do ) end - + + it 'should have correct permissions for logging directory' do + should contain_file('fix-log-dir').with( + :ensure => 'directory', diff --git a/patches/fuel-mirror/0001-Set-mos-ubuntu-base-URL-to-linux.enea.com.patch b/patches/fuel-mirror/0001-Set-mos-ubuntu-base-URL-to-linux.enea.com.patch index a12c4143..9d45cda1 100644 --- a/patches/fuel-mirror/0001-Set-mos-ubuntu-base-URL-to-linux.enea.com.patch +++ b/patches/fuel-mirror/0001-Set-mos-ubuntu-base-URL-to-linux.enea.com.patch @@ -8,7 +8,7 @@ Contents of amd64 mos-ubuntu repos should be in sync with arm64. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/fuel_mirror/data/ubuntu.yaml b/contrib/fuel_mirror/data/ubuntu.yaml -index 5ce288e..7bc0c4b 100644 +index ac62455..cd86ec9 100644 --- a/contrib/fuel_mirror/data/ubuntu.yaml +++ b/contrib/fuel_mirror/data/ubuntu.yaml @@ -1,6 +1,6 @@ @@ -16,6 +16,6 @@ index 5ce288e..7bc0c4b 100644 ubuntu_baseurl: &ubuntu_baseurl http://archive.ubuntu.com/ubuntu -mos_baseurl: &mos_baseurl http://mirror.fuel-infra.org/mos-repos/ubuntu/$mos_version +mos_baseurl: &mos_baseurl http://linux.enea.com/mos-repos/ubuntu/$mos_version - + fuel_release_match: version: $openstack_version diff --git a/patches/fuel-mirror/0003-kernel-flavor-Add-linux-image-generic-lts-xenial.patch b/patches/fuel-mirror/kernel-bump/0001-kernel-flavor-Add-linux-image-generic-lts-xenial.patch index 6be21dac..35f356d6 100644 --- a/patches/fuel-mirror/0003-kernel-flavor-Add-linux-image-generic-lts-xenial.patch +++ b/patches/fuel-mirror/kernel-bump/0001-kernel-flavor-Add-linux-image-generic-lts-xenial.patch @@ -8,14 +8,14 @@ Ubuntu arm64: While keeping kernel 4.2 for Trusty Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- - contrib/fuel_mirror/data/ubuntu.yaml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + contrib/fuel_mirror/data/ubuntu.yaml | 2 ++ + 1 file changed, 2 insertions(+) diff --git a/contrib/fuel_mirror/data/ubuntu.yaml b/contrib/fuel_mirror/data/ubuntu.yaml -index 2ec4f1d..b8c0ae4 100644 +index 2ec4f1d..6805847 100644 --- a/contrib/fuel_mirror/data/ubuntu.yaml +++ b/contrib/fuel_mirror/data/ubuntu.yaml -@@ -98,6 +98,8 @@ packages: &packages +@@ -100,6 +100,8 @@ packages: &packages - "linux-firmware-nonfree" - "linux-headers-generic-lts-trusty" - "linux-image-generic-lts-trusty" diff --git a/patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch b/patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch index d8fe07da..f1a1d412 100644 --- a/patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch +++ b/patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch @@ -104,10 +104,10 @@ index 0000000..08a528b + </instructions> + </configuration> diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp -index a322f70..f71bfc8 100644 +index 69cc23a..791ceba 100644 --- a/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp +++ b/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp -@@ -10,4 +10,12 @@ class opendaylight { +@@ -9,4 +9,12 @@ class opendaylight { $odl_mgmt_ips = values($odl_mgmt_ips_hash) $odl_nodes_names = keys($odl_mgmt_ips_hash) $node_internal_address = $odl_mgmt_ips_hash["node-${node_uid}"] @@ -121,13 +121,13 @@ index a322f70..f71bfc8 100644 + } } diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp -index 924a840..d55a311 100644 +index 1962609..ca98532 100644 --- a/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp +++ b/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp @@ -17,6 +17,12 @@ class opendaylight::install ( ensure => installed, } - + + if ($::osfamily == 'Debian' and $::opendaylight::arch == 'arm64') { + class { 'opendaylight::leveldbjni': + require => Package[$odl_package], @@ -138,9 +138,9 @@ index 924a840..d55a311 100644 class { 'opendaylight::quagga': before => Service['opendaylight'] @@ -35,7 +41,8 @@ class opendaylight::install ( - + debug("Set odl rest api port to ${rest_port}") - + - file { "${conf_dir}/jetty.xml": + file { 'jetty.xml': + path => "${conf_dir}/jetty.xml", @@ -313,10 +313,10 @@ index 0000000..5125fc7 + } +} diff --git a/deployment_tasks.yaml b/deployment_tasks.yaml -index 3706678..841bfee 100644 +index 20bd24f..e324ff5 100644 --- a/deployment_tasks.yaml +++ b/deployment_tasks.yaml -@@ -17,7 +17,7 @@ +@@ -20,7 +20,7 @@ parameters: puppet_manifest: puppet/manifests/odl-install.pp puppet_modules: puppet/modules:/etc/puppet/modules diff --git a/patches/fuel-plugin-opendaylight/0002-opnfv-quagga-Build-for-UBUNTU_ARCH.patch b/patches/fuel-plugin-opendaylight/0002-opnfv-quagga-Build-for-UBUNTU_ARCH.patch index a44222ab..e6e7716f 100644 --- a/patches/fuel-plugin-opendaylight/0002-opnfv-quagga-Build-for-UBUNTU_ARCH.patch +++ b/patches/fuel-plugin-opendaylight/0002-opnfv-quagga-Build-for-UBUNTU_ARCH.patch @@ -30,21 +30,21 @@ branch "stable/colorado", including prebuilt binaries (DEBs) for: Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- - pre_build_hook | 16 ++++++++++++++-- - 1 file changed, 14 insertions(+), 2 deletions(-) + pre_build_hook | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pre_build_hook b/pre_build_hook -index f973826..953e66c 100755 +index 0296821..a6d55e9 100755 --- a/pre_build_hook +++ b/pre_build_hook -@@ -41,9 +41,17 @@ NETWORKING_ODL_BRANCH=${NETWORKING_ODL_BRANCH:-stable/mitaka} +@@ -53,9 +53,17 @@ NETWORKING_ODL_BRANCH=${NETWORKING_ODL_BRANCH:-stable/mitaka} OPNFV_QUAGGE_PACKAGING_REPO=${OPNFV_QUAGGE_PACKAGING_REPO:-https://github.com/nikolas-hermanns/opnfv-quagga-packaging} OPNFV_QUAGGE_PACKAGING_BRANCH=stable/colorado - + -# For which systems odl package should be build +# For which systems odl package should be built BUILD_FOR=${BUILD_FOR:-ubuntu} - + +# For which architecture(s) package should be built +# Only applicable when "BUILD_FOR=ubuntu" +# ODL itself is mostly arch-indep, but its deps are not @@ -56,7 +56,7 @@ index f973826..953e66c 100755 DIR="$(dirname `readlink -f $0`)" TMP_DIR="${DIR}/tmp" MODULES="${DIR}/deployment_scripts/puppet/modules" -@@ -74,7 +82,10 @@ function add_opnfv_quagga { +@@ -86,7 +94,10 @@ function add_opnfv_quagga { sudo apt-get -y install `cat requirements.txt` make -j6 fi @@ -67,4 +67,4 @@ index f973826..953e66c 100755 + done popd popd - + diff --git a/patches/fuel-plugin-opendaylight/0003-FIXME-ODL-wget-no-check-certificate-for-cache.patch b/patches/fuel-plugin-opendaylight/0003-FIXME-ODL-wget-no-check-certificate-for-cache.patch index b57de503..8b2d1a38 100644 --- a/patches/fuel-plugin-opendaylight/0003-FIXME-ODL-wget-no-check-certificate-for-cache.patch +++ b/patches/fuel-plugin-opendaylight/0003-FIXME-ODL-wget-no-check-certificate-for-cache.patch @@ -28,15 +28,15 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pre_build_hook b/pre_build_hook -index 4785917..c3dd664 100755 +index a6d55e9..21e7a99 100755 --- a/pre_build_hook +++ b/pre_build_hook -@@ -64,7 +64,7 @@ function cleanup { +@@ -76,7 +76,7 @@ function cleanup { } - + function download { - wget "$1" -qO $2 + wget --no-check-certificate "$1" -qO $2 } - + function unpack { diff --git a/patches/fuel-plugin-ovs/0002-Cleanup-Use-dget-instead-of-wget-dpkg-source.patch b/patches/fuel-plugin-ovs/0001-Cleanup-Use-dget-instead-of-wget-dpkg-source.patch index e9b90be7..4c2283f4 100644 --- a/patches/fuel-plugin-ovs/0002-Cleanup-Use-dget-instead-of-wget-dpkg-source.patch +++ b/patches/fuel-plugin-ovs/0001-Cleanup-Use-dget-instead-of-wget-dpkg-source.patch @@ -24,25 +24,25 @@ index 1b42df1..3d7edea 100755 +++ b/ovs_build/build-ovs-nsh-dpdk.sh @@ -17,10 +17,7 @@ sudo apt-get -y install devscripts dpkg-dev git wget rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME} - + cd ${BUILD_HOME} -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0.orig.tar.gz -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.debian.tar.xz -dpkg-source -x dpdk_2.2.0-0ubuntu8.dsc +dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc - + # copy from debian/control sudo apt-get install -y debhelper \ @@ -49,10 +46,7 @@ cd ${BUILD_HOME}; sudo dpkg -i *.deb apt-get download libxenstore3.0 - + cd ${BUILD_HOME} -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0.orig.tar.gz -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.debian.tar.xz -dpkg-source -x openvswitch-dpdk_2.4.0-0ubuntu1.dsc +dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc - + # copy from debian/control sudo apt-get install -y autoconf \ diff --git a/patches/fuel-plugin-ovs/0003-Cleanup-Drop-git-dependency.patch b/patches/fuel-plugin-ovs/0002-Cleanup-Drop-git-dependency.patch index 89cab56a..22aa570e 100644 --- a/patches/fuel-plugin-ovs/0003-Cleanup-Drop-git-dependency.patch +++ b/patches/fuel-plugin-ovs/0002-Cleanup-Drop-git-dependency.patch @@ -13,46 +13,46 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh -index aeb5eb7..9e92014 100755 +index aeb5eb7..01ba032 100755 --- a/ovs_build/build-ovs-dpdk.sh +++ b/ovs_build/build-ovs-dpdk.sh @@ -3,14 +3,14 @@ set -eux - + OVS_COMMIT=9f4ecd654dbcb88b15a424445184591fc887537e -URL_OVS=https://github.com/openvswitch/ovs.git +URL_OVS_ARCHIVE=https://github.com/openvswitch/ovs/archive BUILD_DEB=${BUILD_DEB:-/deb} BUILD_SRC="$(dirname `readlink -f $0`)" BUILD_DEST=${BUILD_DEST:-/tmp/ovs-dpdk} - + export DEB_BUILD_OPTIONS='parallel=8 nocheck' - + -sudo apt-get -y install devscripts dpkg-dev git wget +sudo apt-get -y install devscripts dpkg-dev wget - + rm -rf ${BUILD_DEST}; mkdir -p ${BUILD_DEST} - + @@ -62,9 +62,9 @@ sudo apt-get install -y autoconf \ python-zopeinterface \ python-six - + -git clone https://github.com/openvswitch/ovs.git -cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git -cd ${BUILD_DEST}; cp -r ovs ovs-dpdk +wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz +tar xzf ${OVS_COMMIT}.tar.gz; mv ovs-${OVS_COMMIT} ovs +cp -r ovs ovs-dpdk - + cd ovs-dpdk cp -r ${BUILD_SRC}/openvswitch-dpdk_2.5.90/debian . diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh -index 3d7edea..ec5eef4 100755 +index 3d7edea..25e4b6c 100755 --- a/ovs_build/build-ovs-nsh-dpdk.sh +++ b/ovs_build/build-ovs-nsh-dpdk.sh @@ -3,7 +3,7 @@ set -eux - + OVS_COMMIT=7d433ae57ebb90cd68e8fa948a096f619ac4e2d8 -URL_OVS=https://github.com/openvswitch/ovs.git +URL_OVS_ARCHIVE=https://github.com/openvswitch/ovs/archive @@ -61,17 +61,17 @@ index 3d7edea..ec5eef4 100755 BUILD_DEST=${BUILD_DEST:-/deb} @@ -12,7 +12,7 @@ DIR="$(dirname `readlink -f $0`)" export DEB_BUILD_OPTIONS='parallel=8 nocheck' - + sudo apt-get build-dep openvswitch -y -sudo apt-get -y install devscripts dpkg-dev git wget +sudo apt-get -y install devscripts dpkg-dev wget - + rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME} - + @@ -35,7 +35,7 @@ sudo apt-get install -y debhelper \ texlive-fonts-recommended \ texlive-latex-extra - + -cd dpdk-2.2.0; rm -rf debian/patches/; +cd dpdk-2.2.0; rm -rf debian/patches/ cat << EOF > debian/changelog @@ -80,7 +80,7 @@ index 3d7edea..ec5eef4 100755 @@ -68,8 +68,8 @@ sudo apt-get install -y autoconf \ python-zopeinterface \ python-six - + -git clone https://github.com/openvswitch/ovs.git -cd ovs; git checkout ${OVS_COMMIT} +wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz diff --git a/patches/fuel-plugin-ovs/0004-build-apt-force-yes.patch b/patches/fuel-plugin-ovs/0003-build-apt-force-yes.patch index 5b5712d0..9ec04cd2 100644 --- a/patches/fuel-plugin-ovs/0004-build-apt-force-yes.patch +++ b/patches/fuel-plugin-ovs/0003-build-apt-force-yes.patch @@ -19,21 +19,21 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh -index 9e92014..75904f2 100755 +index 01ba032..dd9c6ff 100755 --- a/ovs_build/build-ovs-dpdk.sh +++ b/ovs_build/build-ovs-dpdk.sh @@ -10,7 +10,7 @@ BUILD_DEST=${BUILD_DEST:-/tmp/ovs-dpdk} - + export DEB_BUILD_OPTIONS='parallel=8 nocheck' - + -sudo apt-get -y install devscripts dpkg-dev wget +sudo apt-get -y --force-yes install devscripts dpkg-dev wget - + rm -rf ${BUILD_DEST}; mkdir -p ${BUILD_DEST} - + @@ -21,7 +21,7 @@ cd dpdk-16.07 cp -r ${BUILD_SRC}/dpdk_16.07/debian . - + # copy from debian/control -sudo apt-get install -y debhelper \ +sudo apt-get install -y --force-yes debhelper \ @@ -43,7 +43,7 @@ index 9e92014..75904f2 100755 @@ -41,9 +41,9 @@ cd ${BUILD_DEST} sudo dpkg -i *.deb apt-get download libxenstore3.0 - + -sudo apt-get build-dep openvswitch -y +sudo apt-get build-dep openvswitch -y --force-yes # copy from debian/control @@ -53,23 +53,23 @@ index 9e92014..75904f2 100755 bzip2 \ debhelper \ diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh -index ec5eef4..3b84f4c 100755 +index 25e4b6c..3751c02 100755 --- a/ovs_build/build-ovs-nsh-dpdk.sh +++ b/ovs_build/build-ovs-nsh-dpdk.sh @@ -11,8 +11,8 @@ DIR="$(dirname `readlink -f $0`)" - + export DEB_BUILD_OPTIONS='parallel=8 nocheck' - + -sudo apt-get build-dep openvswitch -y -sudo apt-get -y install devscripts dpkg-dev wget +sudo apt-get build-dep openvswitch -y --force-yes +sudo apt-get -y --force-yes install devscripts dpkg-dev wget - + rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME} - + @@ -20,7 +20,7 @@ cd ${BUILD_HOME} dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc - + # copy from debian/control -sudo apt-get install -y debhelper \ +sudo apt-get install -y --force-yes debhelper \ @@ -78,7 +78,7 @@ index ec5eef4..3b84f4c 100755 doxygen \ @@ -49,7 +49,7 @@ cd ${BUILD_HOME} dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc - + # copy from debian/control -sudo apt-get install -y autoconf \ +sudo apt-get install -y --force-yes autoconf \ diff --git a/patches/fuel-plugin-ovs/0005-pre_build_hook-Introduce-USE_DOCKER-option.patch b/patches/fuel-plugin-ovs/0004-pre_build_hook-Introduce-USE_DOCKER-option.patch index dbbfefcf..7df0c5f6 100644 --- a/patches/fuel-plugin-ovs/0005-pre_build_hook-Introduce-USE_DOCKER-option.patch +++ b/patches/fuel-plugin-ovs/0004-pre_build_hook-Introduce-USE_DOCKER-option.patch @@ -26,11 +26,11 @@ index 63cf7b4..b9ae6bb 100755 +++ b/pre_build_hook @@ -3,27 +3,40 @@ set -eux - + BUILD_FOR=${BUILD_FOR:-ubuntu} +USE_DOCKER=${USE_DOCKER:-true} DIR="$(dirname `readlink -f $0`)" - + +if [ `uname -m` = 'aarch64' ]; then + USE_DOCKER=false +fi @@ -45,7 +45,7 @@ index 63cf7b4..b9ae6bb 100755 + rm -rf ${DIR}/repositories/ubuntu ${DEB_DIR} ${DEB_DIR_NSH} + mkdir -p ${DIR}/repositories/ubuntu ${DEB_DIR} ${DEB_DIR_NSH} + sudo chmod -R 777 ${DEB_DIR} ${DEB_DIR_NSH} - + cd ${DIR}/ovs_build - sudo docker build -t ovs_build . + if [ "${USE_DOCKER}" = true ]; then @@ -58,13 +58,13 @@ index 63cf7b4..b9ae6bb 100755 + BUILD_HOME=/tmp/ovs-build-nsh-dpdk BUILD_DEST=${DEB_DIR_NSH} ./build-ovs-nsh-dpdk.sh + rm -rf /tmp/ovs-build-{,nsh-}dpdk + fi - + - DEB_DIR=${DIR}/deb-ovs-dpdk - rm -rf ${DEB_DIR}; mkdir -p ${DEB_DIR}; chmod 777 ${DEB_DIR}; - sudo docker run -v ${DEB_DIR}:/deb -t ovs_build /ovs_build/build-ovs-dpdk.sh cd ${DEB_DIR}; tar czvf ../repositories/ubuntu/ovs-dpdk.tar.gz .; cd ..; rm -rf ${DEB_DIR} - + - DEB_DIR=${DIR}/deb-ovs-nsh-dpdk - rm -rf ${DEB_DIR}; mkdir -p ${DEB_DIR}; chmod 777 ${DEB_DIR}; - sudo docker run -v ${DEB_DIR}:/deb -t ovs_build /ovs_build/build-ovs-nsh-dpdk.sh @@ -72,6 +72,6 @@ index 63cf7b4..b9ae6bb 100755 - cd ..; rm -rf ${DEB_DIR} + cd ${DEB_DIR_NSH}; tar czvf ../repositories/ubuntu/ovs-nsh-dpdk.tar.gz .; + cd ..; rm -rf ${DEB_DIR_NSH} - + ;; *) echo "Not supported system"; exit 1;; diff --git a/patches/fuel-plugin-ovs/0006-build-install-pre_build_hook-Prepare-multiarch.patch b/patches/fuel-plugin-ovs/0005-build-install-pre_build_hook-Prepare-multiarch.patch index 8ba8dd25..da71d8e6 100644 --- a/patches/fuel-plugin-ovs/0006-build-install-pre_build_hook-Prepare-multiarch.patch +++ b/patches/fuel-plugin-ovs/0005-build-install-pre_build_hook-Prepare-multiarch.patch @@ -45,7 +45,7 @@ index efbed72..46d74bb 100644 dpdk_socket_mem=${4:-''} +arch=$(dpkg --print-architecture) +ovs="ovs-dpdk_${arch}.tar.gz" - + -if [ $nsh = 'true' ] -then - curl http://$host:8080/plugins/fuel-plugin-ovs-0.9/repositories/ubuntu/ovs-nsh-dpdk.tar.gz | tar -xzv @@ -58,7 +58,7 @@ index efbed72..46d74bb 100644 +if [ $nsh = 'true' ]; then + ovs="ovs-nsh-dpdk_${arch}.tar.gz" +fi -+ ++ +curl http://$host:8080/plugins/fuel-plugin-ovs-0.9/repositories/ubuntu/${ovs} | tar -xzv +dpkg -i openvswitch-datapath-dkms_*.deb +dpkg -i openvswitch-common_*.deb @@ -109,9 +109,9 @@ index dd9c6ff..a14f5fd 100755 --- a/ovs_build/build-ovs-dpdk.sh +++ b/ovs_build/build-ovs-dpdk.sh @@ -10,18 +10,27 @@ BUILD_DEST=${BUILD_DEST:-/tmp/ovs-dpdk} - + export DEB_BUILD_OPTIONS='parallel=8 nocheck' - + -sudo apt-get -y --force-yes install devscripts dpkg-dev wget +# Keep track of native arch (BUILD_ARCH) and target arch(s) (UBUNTU_ARCH) +# All archs should be represented in `dpkg --print-architecture` format @@ -119,7 +119,7 @@ index dd9c6ff..a14f5fd 100755 +# FIXME(armband): For now, only native building is supported! +BUILD_ARCH=$(dpkg --print-architecture) +UBUNTU_ARCH=${UBUNTU_ARCH:-${BUILD_ARCH}} - + -rm -rf ${BUILD_DEST}; mkdir -p ${BUILD_DEST} +# Build and/or fetch precompiled packages for all arch(s) in UBUNTU_ARCH +for ARCH in ${UBUNTU_ARCH}; do @@ -127,7 +127,7 @@ index dd9c6ff..a14f5fd 100755 + if [ ${ARCH} = ${BUILD_ARCH} ]; then + # Native building for: DPDK, OVS-DPDK, OVS + sudo apt-get -y --force-yes install devscripts dpkg-dev wget - + -cd ${BUILD_DEST} -wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz -xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar @@ -137,7 +137,7 @@ index dd9c6ff..a14f5fd 100755 + xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar + cd dpdk-16.07 + cp -r ${BUILD_SRC}/dpdk_16.07/debian . - + -# copy from debian/control -sudo apt-get install -y --force-yes debhelper \ + # DPDK build-dep install: copy from debian/control @@ -151,14 +151,14 @@ index dd9c6ff..a14f5fd 100755 texlive-latex-extra -debian/rules build; fakeroot debian/rules binary + debian/rules build; fakeroot debian/rules binary - + -cd ${BUILD_DEST} -sudo dpkg -i *.deb -apt-get download libxenstore3.0 + cd ${BUILD_DEST} + sudo dpkg -i *.deb + apt-get download libxenstore3.0 - + -sudo apt-get build-dep openvswitch -y --force-yes -# copy from debian/control -sudo apt-get install -y --force-yes autoconf \ @@ -171,27 +171,27 @@ index dd9c6ff..a14f5fd 100755 @@ -62,16 +71,19 @@ sudo apt-get install -y --force-yes autoconf \ python-zopeinterface \ python-six - + -wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz -tar xzf ${OVS_COMMIT}.tar.gz; mv ovs-${OVS_COMMIT} ovs -cp -r ovs ovs-dpdk + wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz + tar xzf ${OVS_COMMIT}.tar.gz; mv ovs-${OVS_COMMIT} ovs + cp -r ovs ovs-dpdk - + -cd ovs-dpdk -cp -r ${BUILD_SRC}/openvswitch-dpdk_2.5.90/debian . -debian/rules build; fakeroot debian/rules binary + cd ovs-dpdk + cp -r ${BUILD_SRC}/openvswitch-dpdk_2.5.90/debian . + debian/rules build; fakeroot debian/rules binary - + -cd ${BUILD_DEST}/ovs -debian/rules build; fakeroot debian/rules binary + cd ${BUILD_DEST}/ovs + debian/rules build; fakeroot debian/rules binary + fi - + -cp -r ${BUILD_DEST}/*.deb ${BUILD_DEB} -rm -rf ${BUILD_DEST} + # Store DEBs in <${BUILD_DEB}/${ARCH}/> dir and cleanup @@ -203,9 +203,9 @@ index 3751c02..a65a2bb 100755 --- a/ovs_build/build-ovs-nsh-dpdk.sh +++ b/ovs_build/build-ovs-nsh-dpdk.sh @@ -11,16 +11,24 @@ DIR="$(dirname `readlink -f $0`)" - + export DEB_BUILD_OPTIONS='parallel=8 nocheck' - + -sudo apt-get build-dep openvswitch -y --force-yes -sudo apt-get -y --force-yes install devscripts dpkg-dev wget +# Keep track of native arch (BUILD_ARCH) and target arch(s) (UBUNTU_ARCH) @@ -214,7 +214,7 @@ index 3751c02..a65a2bb 100755 +# FIXME(armband): For now, only native building is supported! +BUILD_ARCH=$(dpkg --print-architecture) +UBUNTU_ARCH=${UBUNTU_ARCH:-${BUILD_ARCH}} - + -rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME} +# Build and/or fetch precompiled packages for all arch(s) in UBUNTU_ARCH +for ARCH in ${UBUNTU_ARCH}; do @@ -224,7 +224,7 @@ index 3751c02..a65a2bb 100755 + sudo apt-get build-dep openvswitch -y --force-yes + sudo apt-get -y --force-yes install devscripts dpkg-dev wget + dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc - + -cd ${BUILD_HOME} -dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc - @@ -238,7 +238,7 @@ index 3751c02..a65a2bb 100755 @@ -35,21 +43,22 @@ sudo apt-get install -y --force-yes debhelper \ texlive-fonts-recommended \ texlive-latex-extra - + -cd dpdk-2.2.0; rm -rf debian/patches/ -cat << EOF > debian/changelog + cd dpdk-2.2.0; rm -rf debian/patches/ @@ -254,12 +254,12 @@ index 3751c02..a65a2bb 100755 + debian/rules build; fakeroot debian/rules binary + cd ${BUILD_HOME}; sudo dpkg -i *.deb + apt-get download libxenstore3.0 - + -cd ${BUILD_HOME} -dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc + cd ${BUILD_HOME} + dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc - + -# copy from debian/control -sudo apt-get install -y --force-yes autoconf \ + # OVS-NSH build-dep install: copy from debian/control @@ -270,7 +270,7 @@ index 3751c02..a65a2bb 100755 @@ -68,33 +77,41 @@ sudo apt-get install -y --force-yes autoconf \ python-zopeinterface \ python-six - + -wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz -tar xzf ${OVS_COMMIT}.tar.gz; mv ovs-${OVS_COMMIT} ovs -PATCHES=$(cd ${DIR}/patches; echo *patch) @@ -312,7 +312,7 @@ index 3751c02..a65a2bb 100755 EOF -debian/rules build; fakeroot debian/rules binary + debian/rules build; fakeroot debian/rules binary - + -cd ${BUILD_HOME}/ovs -cat << EOF > debian/changelog + cd ${BUILD_HOME}/ovs @@ -337,7 +337,7 @@ index b9ae6bb..3e46a37 100755 @@ -10,6 +10,11 @@ if [ `uname -m` = 'aarch64' ]; then USE_DOCKER=false fi - + +# Pass target arch(s) (UBUNTU_ARCH) to build scripts. +# All archs should be represented in `dpkg --print-architecture` format +# UBUNTU_ARCH holds a space-separated list of target arch(s) @@ -362,7 +362,7 @@ index b9ae6bb..3e46a37 100755 @@ -32,11 +39,14 @@ function build_pkg { rm -rf /tmp/ovs-build-{,nsh-}dpdk fi - + - cd ${DEB_DIR}; tar czvf ../repositories/ubuntu/ovs-dpdk.tar.gz .; - cd ..; rm -rf ${DEB_DIR} - @@ -376,6 +376,6 @@ index b9ae6bb..3e46a37 100755 + tar czvf ../../repositories/ubuntu/ovs-nsh-dpdk_${ARCH}.tar.gz . + done + cd ${DIR}; sudo rm -rf ${DEB_DIR} ${DEB_DIR_NSH} - + ;; *) echo "Not supported system"; exit 1;; diff --git a/patches/fuel-plugin-ovs/0007-AArch64-Add-native-build-support.patch b/patches/fuel-plugin-ovs/0006-AArch64-Add-native-build-support.patch index 1ea672b6..b4ca8841 100644 --- a/patches/fuel-plugin-ovs/0007-AArch64-Add-native-build-support.patch +++ b/patches/fuel-plugin-ovs/0006-AArch64-Add-native-build-support.patch @@ -18,9 +18,9 @@ index a14f5fd..a0c50e3 100755 --- a/ovs_build/build-ovs-dpdk.sh +++ b/ovs_build/build-ovs-dpdk.sh @@ -10,6 +10,10 @@ BUILD_DEST=${BUILD_DEST:-/tmp/ovs-dpdk} - + export DEB_BUILD_OPTIONS='parallel=8 nocheck' - + +# AArch64 specifics, repository base URL, debian build versions +AARCH64_REPO=${AARCH64_REPO:-'https://linux.enea.com/mos-repos/ubuntu/9.0'} +AARCH64_DPDK_DEBV=${AARCH64_DPDK_DEBV:-'0~u14.04+mos1+mos9.0+amos1'} @@ -31,7 +31,7 @@ index a14f5fd..a0c50e3 100755 @@ -24,10 +28,17 @@ for ARCH in ${UBUNTU_ARCH}; do # Native building for: DPDK, OVS-DPDK, OVS sudo apt-get -y --force-yes install devscripts dpkg-dev wget - + - wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz - xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar - cd dpdk-16.07 @@ -47,7 +47,7 @@ index a14f5fd..a0c50e3 100755 + cd dpdk-16.07 + cp -r ${BUILD_SRC}/dpdk_16.07/debian . + fi - + # DPDK build-dep install: copy from debian/control sudo apt-get install -y --force-yes debhelper \ diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh @@ -59,7 +59,7 @@ index a65a2bb..59d8a79 100755 sudo apt-get build-dep openvswitch -y --force-yes sudo apt-get -y --force-yes install devscripts dpkg-dev wget - dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc - + + # FIXME(armband): OVS-NSH-DPDK is not yet supported on arm64 # DPDK build-dep install: copy from debian/control - sudo apt-get install -y --force-yes debhelper \ @@ -72,7 +72,7 @@ index a65a2bb..59d8a79 100755 @@ -43,19 +45,20 @@ for ARCH in ${UBUNTU_ARCH}; do texlive-fonts-recommended \ texlive-latex-extra - + - cd dpdk-2.2.0; rm -rf debian/patches/ - cat << EOF > debian/changelog + cd dpdk-2.2.0; rm -rf debian/patches/ @@ -89,13 +89,13 @@ index a65a2bb..59d8a79 100755 + debian/rules build; fakeroot debian/rules binary + cd ${BUILD_HOME}; sudo dpkg -i *.deb + apt-get download libxenstore3.0 - + - cd ${BUILD_HOME} - dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc + # OVS-NSH-DPDK build preparations: download sources, patch if needed + dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc + fi - + # OVS-NSH build-dep install: copy from debian/control sudo apt-get install -y --force-yes autoconf \ @@ -88,20 +91,27 @@ EOF @@ -130,7 +130,7 @@ index a65a2bb..59d8a79 100755 - debian/rules build; fakeroot debian/rules binary + debian/rules build; fakeroot debian/rules binary + fi - + + # OVS-NSH build cd ${BUILD_HOME}/ovs cat << EOF > debian/changelog @@ -141,7 +141,7 @@ index e7171b9..e0c27c5 100644 +++ b/ovs_build/openvswitch-dpdk_2.5.90/debian/control @@ -27,7 +27,7 @@ Homepage: http://openvswitch.org/ XS-Testsuite: autopkgtest - + Package: openvswitch-switch-dpdk -Architecture: i386 amd64 +Architecture: i386 amd64 arm64 diff --git a/patches/fuel-plugin-ovs/0008-AArch64-Add-support-for-downloading-prebuilt-DEBs.patch b/patches/fuel-plugin-ovs/0007-AArch64-Add-support-for-downloading-prebuilt-DEBs.patch index 0f7e072c..deb1d59a 100644 --- a/patches/fuel-plugin-ovs/0008-AArch64-Add-support-for-downloading-prebuilt-DEBs.patch +++ b/patches/fuel-plugin-ovs/0007-AArch64-Add-support-for-downloading-prebuilt-DEBs.patch @@ -70,7 +70,7 @@ index a0c50e3..8d70265 100755 AARCH64_REPO=${AARCH64_REPO:-'https://linux.enea.com/mos-repos/ubuntu/9.0'} AARCH64_DPDK_DEBV=${AARCH64_DPDK_DEBV:-'0~u14.04+mos1+mos9.0+amos1'} +AARCH64_OVS_DEBV=${AARCH64_OVS_DEBV:-'2.5.90-1'} - + # Keep track of native arch (BUILD_ARCH) and target arch(s) (UBUNTU_ARCH) # All archs should be represented in `dpkg --print-architecture` format # UBUNTU_ARCH holds a space-separated list of target arch(s) @@ -79,9 +79,9 @@ index a0c50e3..8d70265 100755 +# debian binaries is supported! BUILD_ARCH=$(dpkg --print-architecture) UBUNTU_ARCH=${UBUNTU_ARCH:-${BUILD_ARCH}} - + @@ -92,6 +94,20 @@ for ARCH in ${UBUNTU_ARCH}; do - + cd ${BUILD_DEST}/ovs debian/rules build; fakeroot debian/rules binary + else @@ -99,16 +99,16 @@ index a0c50e3..8d70265 100755 + echo "WARNING: Architecture [${ARCH}] does not provide precompiled DEBs, skipping!" + fi fi - + # Store DEBs in <${BUILD_DEB}/${ARCH}/> dir and cleanup diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh index 59d8a79..9d8a837 100755 --- a/ovs_build/build-ovs-nsh-dpdk.sh +++ b/ovs_build/build-ovs-nsh-dpdk.sh @@ -11,10 +11,14 @@ DIR="$(dirname `readlink -f $0`)" - + export DEB_BUILD_OPTIONS='parallel=8 nocheck' - + +# AArch64 specifics, repository base URL, debian build versions +AARCH64_OVS_NSH_DEBV=${AARCH64_OVS_NSH_DEBV:-'2.5.90-1.nsh'} + @@ -120,7 +120,7 @@ index 59d8a79..9d8a837 100755 +# debian binaries is supported! BUILD_ARCH=$(dpkg --print-architecture) UBUNTU_ARCH=${UBUNTU_ARCH:-${BUILD_ARCH}} - + @@ -119,6 +123,15 @@ openvswitch (${OVS_VER}-1.nsh) unstable; urgency=low -- Open vSwitch team <dev@openvswitch.org> $(date --rfc-2822) EOF @@ -135,5 +135,5 @@ index 59d8a79..9d8a837 100755 + echo "WARNING: Architecture [${ARCH}] does not provide precompiled DEBs, skipping!" + fi fi - + # Store DEBs in <${BUILD_DEST}/${ARCH}/> dir and cleanup diff --git a/patches/fuel-plugin-ovs/0009-build-docker-Use-host-s-network-stack.patch b/patches/fuel-plugin-ovs/0008-build-docker-Use-host-s-network-stack.patch index e0606819..e0606819 100644 --- a/patches/fuel-plugin-ovs/0009-build-docker-Use-host-s-network-stack.patch +++ b/patches/fuel-plugin-ovs/0008-build-docker-Use-host-s-network-stack.patch diff --git a/patches/fuel-plugin-ovs/0010-HACK-build-prebuilt-DEBs-src-bin-ver-mismatch.patch b/patches/fuel-plugin-ovs/0009-HACK-build-prebuilt-DEBs-src-bin-ver-mismatch.patch index 818203f3..bea8a059 100644 --- a/patches/fuel-plugin-ovs/0010-HACK-build-prebuilt-DEBs-src-bin-ver-mismatch.patch +++ b/patches/fuel-plugin-ovs/0009-HACK-build-prebuilt-DEBs-src-bin-ver-mismatch.patch @@ -32,7 +32,7 @@ index a810b93..8ab22cc 100755 @@ -30,16 +30,24 @@ function armband_fetch() { wget -c "${repo_base_url}/${repo_Packages_url}" fi - + - L=$(grep -Pzo "(?s)(?<=^Package: ${name}\n^Binary: )(\N*?)(?=\n^Version: ${ver})" \ + L=$(grep -Pzo "(?s)(?<=^Package: ${name}\n^Binary: )(\N*?)(?=\n^Version: ${src_ver})" \ Sources | tr -d ',') @@ -63,10 +63,10 @@ index 9d8a837..aebcb94 100755 +++ b/ovs_build/build-ovs-nsh-dpdk.sh @@ -12,7 +12,7 @@ DIR="$(dirname `readlink -f $0`)" export DEB_BUILD_OPTIONS='parallel=8 nocheck' - + # AArch64 specifics, repository base URL, debian build versions -AARCH64_OVS_NSH_DEBV=${AARCH64_OVS_NSH_DEBV:-'2.5.90-1.nsh'} +AARCH64_OVS_NSH_DEBV=${AARCH64_OVS_NSH_DEBV:-'2.5.90~04.05-1.nsh+amos2'} - + # Keep track of native arch (BUILD_ARCH) and target arch(s) (UBUNTU_ARCH) # All archs should be represented in `dpkg --print-architecture` format diff --git a/patches/fuel-web/0001-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch b/patches/fuel-web/0001-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch index f3b9ea70..6dee64d9 100644 --- a/patches/fuel-web/0001-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch +++ b/patches/fuel-web/0001-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch @@ -7,14 +7,14 @@ Add the following Openstack releases: - Mitaka on Ubuntu 14.04 (aarch64) - Mitaka on Ubuntu+UCA 14.04 (aarch64) -Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- nailgun/nailgun/fixtures/openstack.yaml | 287 ++++++++++++++++++++++++++++++++ 1 file changed, 287 insertions(+) diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml -index 62e6b73..9674d66 100644 +index d08a4fc..65646d4 100644 --- a/nailgun/nailgun/fixtures/openstack.yaml +++ b/nailgun/nailgun/fixtures/openstack.yaml @@ -2314,3 +2314,290 @@ diff --git a/patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch b/patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch index d621dbdf..0435891e 100644 --- a/patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch +++ b/patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Wed, 24 Feb 2016 20:11:54 +0100 Subject: [PATCH] Add arch to nailgun release and target image @@ -10,23 +10,23 @@ As a bonus, it is also used when building the target image. .../alembic_migrations/versions/armband.py | 53 ++++++++++++++++++++++ nailgun/nailgun/db/sqlalchemy/models/release.py | 8 ++++ nailgun/nailgun/fixtures/openstack.yaml | 5 ++ - .../nailgun/orchestrator/deployment_serializers.py | 9 +++- + .../nailgun/orchestrator/deployment_serializers.py | 8 +++- .../orchestrator/provisioning_serializers.py | 3 +- nailgun/nailgun/orchestrator/tasks_templates.py | 5 +- .../integration/test_cluster_changes_handler.py | 12 ++--- .../integration/test_orchestrator_serializer.py | 4 +- nailgun/nailgun/test/unit/test_tasks_templates.py | 6 ++- - 10 files changed, 96 insertions(+), 14 deletions(-) + 10 files changed, 95 insertions(+), 14 deletions(-) create mode 100644 nailgun/nailgun/db/migration/alembic_migrations/versions/armband.py diff --git a/nailgun/nailgun/consts.py b/nailgun/nailgun/consts.py -index 1ded0ba..5a1af0a 100644 +index 4900ec0..59b0c91 100644 --- a/nailgun/nailgun/consts.py +++ b/nailgun/nailgun/consts.py @@ -38,6 +38,11 @@ RELEASE_OS = Enum( ) ) - + +RELEASE_ARCHS = Enum( + 'amd64', + 'arm64' @@ -37,7 +37,7 @@ index 1ded0ba..5a1af0a 100644 'ha_full', diff --git a/nailgun/nailgun/db/migration/alembic_migrations/versions/armband.py b/nailgun/nailgun/db/migration/alembic_migrations/versions/armband.py new file mode 100644 -index 0000000..8cca69c +index 0000000..6e42b3f --- /dev/null +++ b/nailgun/nailgun/db/migration/alembic_migrations/versions/armband.py @@ -0,0 +1,53 @@ @@ -114,10 +114,10 @@ index 1b47de4..e209e72 100644 operating_system = Column(String(50), nullable=False) state = Column( diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml -index 9674d66..d3226da 100644 +index 65646d4..874d4f0 100644 --- a/nailgun/nailgun/fixtures/openstack.yaml +++ b/nailgun/nailgun/fixtures/openstack.yaml -@@ -1904,6 +1904,7 @@ +@@ -1907,6 +1907,7 @@ name: "Mitaka on CentOS 6.5" state: "unavailable" version: "mitaka-9.0" @@ -125,7 +125,7 @@ index 9674d66..d3226da 100644 operating_system: "CentOS" description: "This option will install the OpenStack Mitaka packages using a CentOS based operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." attributes_metadata: -@@ -1978,6 +1979,7 @@ +@@ -1980,6 +1981,7 @@ fields: name: "Mitaka on Ubuntu 14.04" version: "mitaka-9.0" @@ -133,7 +133,7 @@ index 9674d66..d3226da 100644 operating_system: "Ubuntu" description: "This option will install the OpenStack Mitaka packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." attributes_metadata: -@@ -2219,6 +2221,7 @@ +@@ -2220,6 +2222,7 @@ fields: name: "Mitaka on Ubuntu+UCA 14.04" version: "mitaka-9.0" @@ -158,7 +158,7 @@ index 9674d66..d3226da 100644 attributes_metadata: editable: diff --git a/nailgun/nailgun/orchestrator/deployment_serializers.py b/nailgun/nailgun/orchestrator/deployment_serializers.py -index 699a599..6bb7990 100644 +index 08eb9c3..e561324 100644 --- a/nailgun/nailgun/orchestrator/deployment_serializers.py +++ b/nailgun/nailgun/orchestrator/deployment_serializers.py @@ -300,7 +300,13 @@ class DeploymentMultinodeSerializer(object): @@ -173,11 +173,11 @@ index 699a599..6bb7990 100644 + arch = "aarch64" + image_data['img_path'] = '{0}cirros-{1}-disk.img'.format(img_dir, + arch) - + glance_properties = [] - + diff --git a/nailgun/nailgun/orchestrator/provisioning_serializers.py b/nailgun/nailgun/orchestrator/provisioning_serializers.py -index 48a4753..b1f3ca6 100644 +index 48a4753..aaac22a 100644 --- a/nailgun/nailgun/orchestrator/provisioning_serializers.py +++ b/nailgun/nailgun/orchestrator/provisioning_serializers.py @@ -307,7 +307,8 @@ class ProvisioningSerializer61(ProvisioningSerializer): @@ -187,7 +187,7 @@ index 48a4753..b1f3ca6 100644 - packages)) + packages, + cluster.release.arch)) - + # NOTE(kozhukalov): This pre-provision task is going to be # removed by 7.0 because we need this only for classic way of diff --git a/nailgun/nailgun/orchestrator/tasks_templates.py b/nailgun/nailgun/orchestrator/tasks_templates.py @@ -195,8 +195,8 @@ index 51dfdf7..bc2bff9 100644 --- a/nailgun/nailgun/orchestrator/tasks_templates.py +++ b/nailgun/nailgun/orchestrator/tasks_templates.py @@ -210,7 +210,7 @@ def make_reboot_task(uids, task): - - + + def make_provisioning_images_task( - uids, repos, provision_data, cid, packages): + uids, repos, provision_data, cid, packages, arch): @@ -212,63 +212,63 @@ index 51dfdf7..bc2bff9 100644 + "--input_data '{2}'").format(cid, arch, conf), 'timeout': settings.PROVISIONING_IMAGES_BUILD_TIMEOUT, 'retries': 1}}) - + diff --git a/nailgun/nailgun/test/integration/test_cluster_changes_handler.py b/nailgun/nailgun/test/integration/test_cluster_changes_handler.py -index 0f212e5..da50eac 100644 +index fb82be0..450155d 100644 --- a/nailgun/nailgun/test/integration/test_cluster_changes_handler.py +++ b/nailgun/nailgun/test/integration/test_cluster_changes_handler.py -@@ -153,7 +153,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -154,7 +154,7 @@ class TestHandlers(BaseIntegrationTest): common_attrs['last_controller'] = controller_nodes[-1]['name'] common_attrs['storage']['pg_num'] = 128 - + - common_attrs['test_vm_image'] = { + common_attrs['test_vm_image'] = [{ 'container_format': 'bare', 'public': 'true', 'disk_format': 'qcow2', -@@ -165,7 +165,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -166,7 +166,7 @@ class TestHandlers(BaseIntegrationTest): """--property murano_image_info=""" """'{"title": "Murano Demo", "type": "cirros.demo"}'""" ), - } + }] - + critical_mapping = { 'primary-controller': True, -@@ -565,7 +565,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -566,7 +566,7 @@ class TestHandlers(BaseIntegrationTest): common_attrs['last_controller'] = controller_nodes[-1]['name'] common_attrs['storage']['pg_num'] = 128 - + - common_attrs['test_vm_image'] = { + common_attrs['test_vm_image'] = [{ 'container_format': 'bare', 'public': 'true', 'disk_format': 'qcow2', -@@ -577,7 +577,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -578,7 +578,7 @@ class TestHandlers(BaseIntegrationTest): """--property murano_image_info=""" """'{"title": "Murano Demo", "type": "cirros.demo"}'""" ), - } + }] - + critical_mapping = { 'primary-controller': True, -@@ -1049,7 +1049,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -1050,7 +1050,7 @@ class TestHandlers(BaseIntegrationTest): common_attrs['last_controller'] = controller_nodes[-1]['name'] common_attrs['storage']['pg_num'] = 128 - + - common_attrs['test_vm_image'] = { + common_attrs['test_vm_image'] = [{ 'container_format': 'bare', 'public': 'true', 'disk_format': 'qcow2', -@@ -1061,7 +1061,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -1062,7 +1062,7 @@ class TestHandlers(BaseIntegrationTest): """--property murano_image_info=""" """'{"title": "Murano Demo", "type": "cirros.demo"}'""" ), - } + }] - + critical_mapping = { 'primary-controller': True, diff --git a/nailgun/nailgun/test/integration/test_orchestrator_serializer.py b/nailgun/nailgun/test/integration/test_orchestrator_serializer.py @@ -276,22 +276,22 @@ index 5db8f4e..ef208cb 100644 --- a/nailgun/nailgun/test/integration/test_orchestrator_serializer.py +++ b/nailgun/nailgun/test/integration/test_orchestrator_serializer.py @@ -2584,12 +2584,12 @@ class BaseDeploymentSerializer(BaseSerializerTest): - + def check_no_murano_data(self): glance_properties = self.serializer.generate_test_vm_image_data( - self.env.nodes[0])['test_vm_image']['glance_properties'] + self.env.nodes[0])['test_vm_image'][0]['glance_properties'] self.assertNotIn('murano_image_info', glance_properties) - + def check_murano_data(self): glance_properties = self.serializer.generate_test_vm_image_data( - self.env.nodes[0])['test_vm_image']['glance_properties'] + self.env.nodes[0])['test_vm_image'][0]['glance_properties'] self.assertIn('murano_image_info', glance_properties) - - + + diff --git a/nailgun/nailgun/test/unit/test_tasks_templates.py b/nailgun/nailgun/test/unit/test_tasks_templates.py -index 4e81a19..d657518 100644 +index 4e81a19..695e53d 100644 --- a/nailgun/nailgun/test/unit/test_tasks_templates.py +++ b/nailgun/nailgun/test/unit/test_tasks_templates.py @@ -140,7 +140,8 @@ class TestMakeTask(base.BaseTestCase): @@ -302,7 +302,7 @@ index 4e81a19..d657518 100644 + packages=packages, + arch='amd64' ) - + fuel_image_conf = { @@ -177,7 +178,8 @@ class TestMakeTask(base.BaseTestCase): cmd = result["parameters"]["cmd"].lstrip( @@ -312,5 +312,5 @@ index 4e81a19..d657518 100644 + "--data_driver nailgun_build_image --target_arch amd64" + " --input_data '").rstrip("'") self.assertEqual(jsonutils.loads(cmd), fuel_image_conf) - + def test_generate_ironic_bootstrap_keys_task(self): diff --git a/patches/fuel-web/cross-bootstrap/0000-Add-arch-to-nailgun-release-and-target-image.patch b/patches/fuel-web/cross-bootstrap/0000-Add-arch-to-nailgun-release-and-target-image.patch new file mode 120000 index 00000000..64ff45c3 --- /dev/null +++ b/patches/fuel-web/cross-bootstrap/0000-Add-arch-to-nailgun-release-and-target-image.patch @@ -0,0 +1 @@ +../0002-Add-arch-to-nailgun-release-and-target-image.patch
\ No newline at end of file diff --git a/patches/fuel-web/direct-kernel-boot/0000-Add-arch-to-nailgun-release-and-target-image.patch b/patches/fuel-web/direct-kernel-boot/0000-Add-arch-to-nailgun-release-and-target-image.patch new file mode 120000 index 00000000..64ff45c3 --- /dev/null +++ b/patches/fuel-web/direct-kernel-boot/0000-Add-arch-to-nailgun-release-and-target-image.patch @@ -0,0 +1 @@ +../0002-Add-arch-to-nailgun-release-and-target-image.patch
\ No newline at end of file diff --git a/patches/fuel-web/0004-direct-kernel-boot-for-cirros.patch b/patches/fuel-web/direct-kernel-boot/0001-direct-kernel-boot-for-cirros.patch index 994ad730..0f9395c3 100644 --- a/patches/fuel-web/0004-direct-kernel-boot-for-cirros.patch +++ b/patches/fuel-web/direct-kernel-boot/0001-direct-kernel-boot-for-cirros.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Tue, 15 Mar 2016 15:01:51 +0100 Subject: [PATCH] direct kernel boot for cirros @@ -8,11 +8,11 @@ Subject: [PATCH] direct kernel boot for cirros 2 files changed, 61 insertions(+), 23 deletions(-) diff --git a/nailgun/nailgun/orchestrator/base_serializers.py b/nailgun/nailgun/orchestrator/base_serializers.py -index 0643635..a2f43b0 100644 +index 2fb0da5..ac787ed 100644 --- a/nailgun/nailgun/orchestrator/base_serializers.py +++ b/nailgun/nailgun/orchestrator/base_serializers.py @@ -145,12 +145,16 @@ class MuranoMetadataSerializerMixin(object): - + def inject_murano_settings(self, image_data): """Adds murano metadata to the test image""" - test_vm_image = image_data['test_vm_image'] @@ -31,16 +31,16 @@ index 0643635..a2f43b0 100644 + murano_data + test_vm_images += [test_vm_image] + return {'test_vm_image': test_vm_images} - - + + class VmwareDeploymentSerializerMixin(object): diff --git a/nailgun/nailgun/orchestrator/deployment_serializers.py b/nailgun/nailgun/orchestrator/deployment_serializers.py -index 6bb7990..62fb08b 100644 +index e561324..601301b 100644 --- a/nailgun/nailgun/orchestrator/deployment_serializers.py +++ b/nailgun/nailgun/orchestrator/deployment_serializers.py @@ -283,6 +283,9 @@ class DeploymentMultinodeSerializer(object): return {'glance': {'image_cache_max_size': image_cache_max_size}} - + def generate_test_vm_image_data(self, node): + images = [] + # By default always prepare the disk image @@ -48,7 +48,7 @@ index 6bb7990..62fb08b 100644 # Instantiate all default values in dict. image_data = { 'container_format': 'bare', -@@ -306,8 +309,8 @@ class DeploymentMultinodeSerializer(object): +@@ -305,8 +308,8 @@ class DeploymentMultinodeSerializer(object): arch = "x86_64" elif arch == "arm64": arch = "aarch64" @@ -56,12 +56,12 @@ index 6bb7990..62fb08b 100644 - arch) + image_data['img_path'] = \ + '{0}cirros-{1}-disk.img'.format(img_dir, arch) - + glance_properties = [] - -@@ -322,8 +325,38 @@ class DeploymentMultinodeSerializer(object): + +@@ -321,8 +324,38 @@ class DeploymentMultinodeSerializer(object): glance_properties.append('--property hypervisor_type=vmware') - + image_data['glance_properties'] = ' '.join(glance_properties) + images += [image_data] + @@ -93,13 +93,13 @@ index 6bb7990..62fb08b 100644 + 'glance_properties': '', + } + images += [kernel_data, initrd_data] - + - return {'test_vm_image': image_data} + return {'test_vm_image': images} - + @classmethod def get_net_provider_serializer(cls, cluster): -@@ -522,20 +555,21 @@ class DeploymentHASerializer61(DeploymentHASerializer, +@@ -521,20 +554,21 @@ class DeploymentHASerializer61(DeploymentHASerializer, images_data['test_vm_image'] = [] if attrs.get('editable', {}).get('common', {}). \ get('use_vcenter', {}).get('value') is True: @@ -134,4 +134,4 @@ index 6bb7990..62fb08b 100644 + images_data['test_vm_image'] += image_data['test_vm_image'] else: images_data = image_data - + diff --git a/patches/fuel-web/0007-kernel-flavor-linux-image-generic-lts-xenial.patch b/patches/fuel-web/kernel-bump/0001-kernel-flavor-linux-image-generic-lts-xenial.patch index 5a068d6f..80189744 100644 --- a/patches/fuel-web/0007-kernel-flavor-linux-image-generic-lts-xenial.patch +++ b/patches/fuel-web/kernel-bump/0001-kernel-flavor-linux-image-generic-lts-xenial.patch @@ -12,10 +12,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml -index 9c34a05..6848424 100644 +index 874d4f0..c5087b6 100644 --- a/nailgun/nailgun/fixtures/openstack.yaml +++ b/nailgun/nailgun/fixtures/openstack.yaml -@@ -2103,8 +2103,8 @@ +@@ -2081,8 +2081,8 @@ i40e-dkms linux-firmware linux-firmware-nonfree @@ -26,7 +26,7 @@ index 9c34a05..6848424 100644 lvm2 mcollective mdadm -@@ -2447,8 +2447,8 @@ +@@ -2424,8 +2424,8 @@ i40e-dkms linux-firmware linux-firmware-nonfree diff --git a/patches/fuel-web/multiarch-fuel/0000-Add-arch-to-nailgun-release-and-target-image.patch b/patches/fuel-web/multiarch-fuel/0000-Add-arch-to-nailgun-release-and-target-image.patch new file mode 120000 index 00000000..64ff45c3 --- /dev/null +++ b/patches/fuel-web/multiarch-fuel/0000-Add-arch-to-nailgun-release-and-target-image.patch @@ -0,0 +1 @@ +../0002-Add-arch-to-nailgun-release-and-target-image.patch
\ No newline at end of file diff --git a/patches/fuel-web/multiarch-fuel/0000-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch b/patches/fuel-web/multiarch-fuel/0000-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch new file mode 120000 index 00000000..e0d56a81 --- /dev/null +++ b/patches/fuel-web/multiarch-fuel/0000-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch @@ -0,0 +1 @@ +../0001-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch
\ No newline at end of file diff --git a/patches/fuel-web/0005-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch b/patches/fuel-web/multiarch-fuel/0001-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch index 776ae32c..d76a1f6d 100644 --- a/patches/fuel-web/0005-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch +++ b/patches/fuel-web/multiarch-fuel/0001-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch @@ -13,10 +13,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 2 insertions(+) diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml -index d3226da..7e6e96e 100644 +index c5087b6..ba25093 100644 --- a/nailgun/nailgun/fixtures/openstack.yaml +++ b/nailgun/nailgun/fixtures/openstack.yaml -@@ -1978,6 +1978,7 @@ +@@ -1980,6 +1980,7 @@ extend: *base_release fields: name: "Mitaka on Ubuntu 14.04" @@ -24,7 +24,7 @@ index d3226da..7e6e96e 100644 version: "mitaka-9.0" arch: "amd64" operating_system: "Ubuntu" -@@ -2220,6 +2221,7 @@ +@@ -2221,6 +2222,7 @@ extend: *ubuntu_release fields: name: "Mitaka on Ubuntu+UCA 14.04" diff --git a/patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch b/patches/fuel-web/mysql-sst-provider/0001-Add-configuration-item-for-WSREP-SST-provider.patch index 87f0a2fd..2f63ec06 100644 --- a/patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch +++ b/patches/fuel-web/mysql-sst-provider/0001-Add-configuration-item-for-WSREP-SST-provider.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Wed, 20 Apr 2016 15:05:15 -0700 Subject: [PATCH] Add configuration item for WSREP SST provider @@ -6,16 +6,16 @@ This patch adds a radio button in "OpenStack Services" tab of the environment settings to configure which WSREP SST provider to use for MySQL. -Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> --- nailgun/nailgun/fixtures/openstack.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml -index 62e6b73..4b123b9 100644 +index ba25093..e855cf0 100644 --- a/nailgun/nailgun/fixtures/openstack.yaml +++ b/nailgun/nailgun/fixtures/openstack.yaml -@@ -918,6 +918,27 @@ +@@ -932,6 +932,27 @@ description: "Name for Mongo replication set" weight: 30 type: "text" diff --git a/patches/opnfv-fuel/0046-build-Use-OPNFV_GIT_SHA-for-ISO-preparer-ID.patch b/patches/opnfv-fuel/0000-build-Use-OPNFV_GIT_SHA-for-ISO-preparer-ID.patch index e6d4dc21..27b00c71 100644 --- a/patches/opnfv-fuel/0046-build-Use-OPNFV_GIT_SHA-for-ISO-preparer-ID.patch +++ b/patches/opnfv-fuel/0000-build-Use-OPNFV_GIT_SHA-for-ISO-preparer-ID.patch @@ -6,36 +6,64 @@ isoinfo -i lists the following information for Fuel@OPNFV ISO: "Data preparer id: 86aafaf5454a846c417848bb94f264c4420160f3" where the SHA hash is Fuel git repo HEAD SHA. +For Armband's build system, using only the Fuel commit ID is not +enough to fully describe the state of the source code, as patches +are also applied to other fuel modules (as git submodules). +Instead, a pointer to a valid Armband commit ID should be used. + However, Armband overrides OPNFV_GIT_SHA to the Armband git repo commit hash, so the ISO metadata should also reflect this. +While at it, allow product name to be overriden, to signal the +commit ID should be looked up inside the Armband repository. + +Change-Id: I33ad490f1afe28c1d439dda40e39cee1955e0ac2 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- + build/Makefile | 4 ++-- build/docker/runcontext | 2 +- build/install/install.sh | 6 +++++- - 2 files changed, 6 insertions(+), 2 deletions(-) + 3 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/build/Makefile b/build/Makefile +index 56acb40..ac85498 100644 +--- a/build/Makefile ++++ b/build/Makefile +@@ -21,11 +21,11 @@ SHELL = /bin/bash + export MOSVERSION = 9.0 + export ISOSRC = file:$(shell pwd)/fuel-$(MOSVERSION).iso + export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC)) +-export PRODNO = "OPNFV_FUEL" ++export PRODNO ?= "OPNFV_FUEL" + export REVSTATE = "P0000" + export USER ?= $(shell whoami) + export BUILD_DATE = $(shell date --utc +%Y-%m-%d:%H:%M) +-export OPNFV_GIT_SHA = $(shell git rev-parse HEAD) ++export OPNFV_GIT_SHA ?= $(shell git rev-parse HEAD) + # Store in /etc/fuel_build_id on fuel master + export BUILD_ID := $(PRODNO)_$(BUILD_DATE)_$(OPNFV_GIT_SHA) diff --git a/build/docker/runcontext b/build/docker/runcontext -index e4874df..07b0dc1 100755 +index daad663..2d13562 100755 --- a/build/docker/runcontext +++ b/build/docker/runcontext -@@ -119,7 +119,7 @@ RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm \ +@@ -115,7 +115,7 @@ RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm \ -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE \ -e BUILD_FUEL_PLUGINS -e MIRROR_UBUNTU -e MIRROR_UBUNTU_ROOT \ -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL \ -- -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e ARMBAND_BASE \ -+ -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e ARMBAND_BASE -e OPNFV_GIT_SHA \ +- -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH \ ++ -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e OPNFV_GIT_SHA \ -u $USER_ID:$GROUP_ID -w $PWD \ -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT" - + diff --git a/build/install/install.sh b/build/install/install.sh -index f6308fb..9e003bb 100755 +index c632419..866d304 100755 --- a/build/install/install.sh +++ b/build/install/install.sh -@@ -210,8 +210,12 @@ make_iso_image() { +@@ -196,8 +196,12 @@ make_iso_image() { find . -name TRANS.TBL -exec rm {} \; rm -rf rr_moved - + + if [[ -z "$OPNFV_GIT_SHA" ]]; then + OPNFV_GIT_SHA=$(git rev-parse --verify HEAD) + fi diff --git a/patches/opnfv-fuel/0001-build-Add-ARMBAND_BASE-support.patch b/patches/opnfv-fuel/0001-build-Add-ARMBAND_BASE-support.patch new file mode 100644 index 00000000..17cfd689 --- /dev/null +++ b/patches/opnfv-fuel/0001-build-Add-ARMBAND_BASE-support.patch @@ -0,0 +1,70 @@ +From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +Date: Thu, 11 Aug 2016 15:34:32 +0200 +Subject: [PATCH] build: Add ARMBAND_BASE support + +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +--- + build/Makefile | 10 ++++++++++ + build/docker/Dockerfile | 2 +- + build/docker/runcontext | 6 +++++- + 3 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/build/Makefile b/build/Makefile +index 4454c35..377ecc6 100644 +--- a/build/Makefile ++++ b/build/Makefile +@@ -14,4 +14,9 @@ SHELL = /bin/bash + ++# Only configure Armband specific stuff when ARMBAND_BASE is set ++ifdef ARMBAND_BASE ++ include ${ARMBAND_BASE}/armband-fuel-config.mk ++endif ++ + ############################################################################ + # BEGIN of variables to customize + # +@@ -140,6 +140,7 @@ $(ISOCACHE): + # fuel-main Makefiles do not like `make -C` + cd $(FUEL_MAIN_DIR) && make repos + cp f_repos/.cachefuelinfo gitinfo_fuel.txt ++ test -z $(ARMBAND_BASE) || $(REPOINFO) $(ARMBAND_BASE) >> gitinfo_fuel.txt + + # Repeat build up to three times + sudo -E ./fuel_build_loop +diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile +index b38ea4c..624f233 100644 +--- a/build/docker/Dockerfile ++++ b/build/docker/Dockerfile +@@ -30,7 +30,7 @@ RUN echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy RSYNC + # Keeping PWD is needed to build as root + RUN echo "Defaults env_keep += \"PWD\"" > /etc/sudoers.d/keep-pwd + # Keeping variables for ISO build +-RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL LATEST_TARGET_UBUNTU UBUNTU_ARCH\"" > /etc/sudoers.d/keep-mos ++RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL LATEST_TARGET_UBUNTU UBUNTU_ARCH ARMBAND_BASE\"" > /etc/sudoers.d/keep-mos + RUN chmod 0440 /etc/sudoers.d/open-sudo + RUN chmod 0440 /etc/sudoers.d/keep-proxies + RUN chmod 0440 /etc/sudoers.d/keep-pwd +diff --git a/build/docker/runcontext b/build/docker/runcontext +index daad663..e4874df 100755 +--- a/build/docker/runcontext ++++ b/build/docker/runcontext +@@ -42,6 +42,10 @@ GITROOT=`git rev-parse --show-toplevel` + CID_FILE=`mktemp -u -t runcontext.XXXXXXXXXX` + CONTEXT_DIR=`mktemp -d ${GITROOT}/.docker_contextXXXXXX` + ++if [[ $ARMBAND_BASE ]]; then ++ GITROOT=$ARMBAND_BASE ++fi ++ + # If RSYNC_CONNECT_PROG is used, we need to copy all of + # the SSH structure, should one of the keys need to be + # used. +@@ -115,7 +119,7 @@ RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm \ + -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE \ + -e BUILD_FUEL_PLUGINS -e MIRROR_UBUNTU -e MIRROR_UBUNTU_ROOT \ + -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL \ +- -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e OPNFV_GIT_SHA \ ++ -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e OPNFV_GIT_SHA -e ARMBAND_BASE \ + -u $USER_ID:$GROUP_ID -w $PWD \ + -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT" + diff --git a/patches/opnfv-fuel/0004-Fuel-VM-for-the-Enea-Armband-lab.patch b/patches/opnfv-fuel/0002-Fuel-VM-for-the-Enea-Armband-lab.patch index aa97aa69..cefc0625 100644 --- a/patches/opnfv-fuel/0004-Fuel-VM-for-the-Enea-Armband-lab.patch +++ b/patches/opnfv-fuel/0002-Fuel-VM-for-the-Enea-Armband-lab.patch @@ -1,4 +1,3 @@ -From 800aae6db0d0d79d01cec4df85075026073063dd Mon Sep 17 00:00:00 2001 From: Josep Puigdemont <josep.puigdemont@enea.com> Date: Wed, 4 May 2016 14:27:23 +0200 Subject: [PATCH] Fuel VM for the Enea Armband lab @@ -106,6 +105,3 @@ index 0000000..8773ed4 + </memballoon> + </devices> +</domain> --- -2.5.5 - diff --git a/patches/opnfv-fuel/0009-dea_base-replace-grub-pc-by-grub-efi-arm64.patch b/patches/opnfv-fuel/0003-dea_base-replace-grub-pc-by-grub-efi-arm64.patch index 08b84def..fae14001 100644 --- a/patches/opnfv-fuel/0009-dea_base-replace-grub-pc-by-grub-efi-arm64.patch +++ b/patches/opnfv-fuel/0003-dea_base-replace-grub-pc-by-grub-efi-arm64.patch @@ -12,11 +12,11 @@ index 0b8485b..658b328 100644 --- a/deploy/config/dea_base.yaml +++ b/deploy/config/dea_base.yaml @@ -462,7 +462,7 @@ settings: - + gdisk - + - grub-pc + grub-efi-arm64 - + hpsa-dkms - + diff --git a/patches/opnfv-fuel/0010-post-scripts-Allow-SSH-on-non-admin-ifaces.patch b/patches/opnfv-fuel/0004-post-scripts-Allow-SSH-on-non-admin-ifaces.patch index e098d47c..e098d47c 100644 --- a/patches/opnfv-fuel/0010-post-scripts-Allow-SSH-on-non-admin-ifaces.patch +++ b/patches/opnfv-fuel/0004-post-scripts-Allow-SSH-on-non-admin-ifaces.patch diff --git a/patches/opnfv-fuel/0030-deploy.py-add-a-time-stamp-to-the-new-ISO-image.patch b/patches/opnfv-fuel/0005-deploy.py-add-a-time-stamp-to-the-new-ISO-image.patch index 3e3480b1..61847ab8 100644 --- a/patches/opnfv-fuel/0030-deploy.py-add-a-time-stamp-to-the-new-ISO-image.patch +++ b/patches/opnfv-fuel/0005-deploy.py-add-a-time-stamp-to-the-new-ISO-image.patch @@ -26,7 +26,7 @@ index 041ba2f..cebef97 100755 import errno import signal @@ -100,8 +101,9 @@ class AutoDeploy(object): - + def install_fuel_master(self): log('Install Fuel Master') - new_iso = ('%s/deploy-%s' diff --git a/patches/opnfv-fuel/0055-build-docker-Use-host-s-network-stack.patch b/patches/opnfv-fuel/0006-build-docker-Use-host-s-network-stack.patch index d9fd36a0..69b0e82f 100644 --- a/patches/opnfv-fuel/0055-build-docker-Use-host-s-network-stack.patch +++ b/patches/opnfv-fuel/0006-build-docker-Use-host-s-network-stack.patch @@ -20,7 +20,7 @@ index 07b0dc1..b0d6d37 100755 +++ b/build/docker/runcontext @@ -121,6 +121,7 @@ RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm --net=host \ -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL \ - -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e ARMBAND_BASE -e OPNFV_GIT_SHA \ + -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e OPNFV_GIT_SHA -e ARMBAND_BASE \ -u $USER_ID:$GROUP_ID -w $PWD \ + -v /etc/hosts:/etc/hosts \ -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT" diff --git a/patches/opnfv-fuel/0006-deploy.sh-no-need-to-set-umask-0000.patch b/patches/opnfv-fuel/0006-deploy.sh-no-need-to-set-umask-0000.patch deleted file mode 100644 index 9c005907..00000000 --- a/patches/opnfv-fuel/0006-deploy.sh-no-need-to-set-umask-0000.patch +++ /dev/null @@ -1,38 +0,0 @@ -From f67625ce6c607b47bc99c5118f5e52fe8a8e763b Mon Sep 17 00:00:00 2001 -From: Josep Puigdemont <josep.puigdemont@enea.com> -Date: Fri, 6 May 2016 03:07:40 +0200 -Subject: [PATCH] deploy.sh: no need to set umask 0000 - -Change-Id: If3283a16139097db57b06c0535d33a88dc1b2ed2 -Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com> ---- - ci/deploy.sh | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/ci/deploy.sh b/ci/deploy.sh -index 8411714..c08a94b 100755 ---- a/ci/deploy.sh -+++ b/ci/deploy.sh -@@ -84,9 +84,6 @@ Input parameters to the build script is: - -i .iso image to be deployed (needs to be provided in a URI - style, it can be a local resource: file:// or a remote resource http(s)://) - --NOTE: Root priviledges are needed for this script to run -- -- - Examples: - sudo `basename $0` -b file:///home/jenkins/lab-config -l lf -p pod1 -s ha_odl-l3_heat_ceilometer -i file:///home/jenkins/myiso.iso - EOF -@@ -231,9 +228,6 @@ fi - # Enable the automatic exit trap - trap do_exit SIGINT SIGTERM EXIT - --# Set no restrictive umask so that Jenkins can removeeee any residuals --umask 0000 -- - clean - - pushd ${DEPLOY_DIR} > /dev/null --- -2.5.5 - diff --git a/patches/opnfv-fuel/0039-deploy-Fix-add-bootstrap-DEA-override-delay.patch b/patches/opnfv-fuel/0007-deploy-Fix-add-bootstrap-DEA-override-delay.patch index 2189b004..88ac7625 100644 --- a/patches/opnfv-fuel/0039-deploy-Fix-add-bootstrap-DEA-override-delay.patch +++ b/patches/opnfv-fuel/0007-deploy-Fix-add-bootstrap-DEA-override-delay.patch @@ -17,13 +17,13 @@ index 808d0b1..1a7685a 100644 +++ b/deploy/install_fuel_master.py @@ -196,11 +196,13 @@ class InstallFuelMaster(object): self.work_dir, os.path.basename(self.dea_file))) - + def wait_until_installation_completed(self): - WAIT_LOOP = 360 + WAIT_LOOP = 720 SLEEP_TIME = 10 - CMD = 'ps -ef | grep %s | grep -v grep' % BOOTSTRAP_ADMIN - + CMD = 'pgrep -f %s' % BOOTSTRAP_ADMIN + install_completed = False + time.sleep(60) + self.wait_for_node_up() diff --git a/patches/opnfv-fuel/0015-build-Makefile-Overrideable-product-commit-hash.patch b/patches/opnfv-fuel/0015-build-Makefile-Overrideable-product-commit-hash.patch deleted file mode 100644 index 1c9bd82a..00000000 --- a/patches/opnfv-fuel/0015-build-Makefile-Overrideable-product-commit-hash.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Date: Mon, 18 Jul 2016 23:50:30 +0200 -Subject: [PATCH] build/Makefile: Overrideable product, commit hash. - -For Armband's build system, using only the Fuel commit ID is not -enough to fully describe the state of the source code, as patches -are also applied to other fuel modules (as git submodules). -Instead, a pointer to a valid Armband commit ID should be used. - -While at it, allow product name to be overriden, to signal the -commit ID should be looked up inside the Armband repository. - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - build/Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/build/Makefile b/build/Makefile -index ec5d27a..ba117da 100644 ---- a/build/Makefile -+++ b/build/Makefile -@@ -21,11 +21,11 @@ SHELL = /bin/bash - export MOSVERSION = 9.0 - export ISOSRC = file:$(shell pwd)/fuel-$(MOSVERSION).iso - export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC)) --export PRODNO = "OPNFV_FUEL" -+export PRODNO ?= "OPNFV_FUEL" - export REVSTATE = "P0000" - export USER ?= $(shell whoami) - export BUILD_DATE = $(shell date --utc +%Y-%m-%d:%H:%M) --export OPNFV_GIT_SHA = $(shell git rev-parse HEAD) -+export OPNFV_GIT_SHA ?= $(shell git rev-parse HEAD) - # Store in /etc/fuel_build_id on fuel master - export BUILD_ID := $(PRODNO)_$(BUILD_DATE)_$(OPNFV_GIT_SHA) - diff --git a/patches/opnfv-fuel/0043-build-Add-armband.mk-config.patch b/patches/opnfv-fuel/0043-build-Add-armband.mk-config.patch deleted file mode 100644 index cb07c9fc..00000000 --- a/patches/opnfv-fuel/0043-build-Add-armband.mk-config.patch +++ /dev/null @@ -1,143 +0,0 @@ -From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Date: Thu, 11 Aug 2016 15:34:32 +0200 -Subject: [PATCH] build: Add armband.mk config, env var ARMBAND_BASE - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - build/Makefile | 10 ++++++++++ - build/armband.mk | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ - build/docker/Dockerfile | 2 +- - build/docker/runcontext | 6 +++++- - 4 files changed, 69 insertions(+), 2 deletions(-) - create mode 100644 build/armband.mk - -diff --git a/build/Makefile b/build/Makefile -index 4454c35..377ecc6 100644 ---- a/build/Makefile -+++ b/build/Makefile -@@ -14,6 +14,9 @@ SHELL = /bin/bash - # settings. - -include environment.mk - -+# Override Armband specific information & git commit references -+-include armband.mk -+ - ############################################################################ - # BEGIN of variables to customize - # -@@ -129,5 +132,8 @@ $(ISOCACHE): - cd $(FUEL_MAIN_DIR) && make repos - $(REPOINFO) -r $(FUEL_MAIN_DIR) > gitinfo_fuel.txt -+ @if test -n $(ARMBAND_BASE); then \ -+ $(REPOINFO) -r $(ARMBAND_BASE) >> gitinfo_fuel.txt; \ -+ fi - # OPNFV patches at Fuel build time - # Need to be commited in order for them to be considered by the Fuel - # build system -@@ -228,5 +234,9 @@ debug: - sha1sum fuel_build_loop >> .cachedata - sha1sum config.mk >> .cachedata -+ @if test -n $(ARMBAND_BASE); then \ -+ sha1sum armband.mk >> .cachedata; \ -+ $(REPOINFO) $(ARMBAND_BASE) >> .cachedata; \ -+ fi - sha1sum Makefile >> .cachedata - $(CACHETOOL) getbiweek >> .cachedata - cat .cachedata | $(CACHETOOL) getid > .cacheid -diff --git a/build/armband.mk b/build/armband.mk -new file mode 100644 -index 0000000..1e772f0 ---- /dev/null -+++ b/build/armband.mk -@@ -0,0 +1,54 @@ -+############################################################################## -+# Copyright (c) 2016 Enea AB and others. -+# Alexandru.Avadanii@enea.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 -+############################################################################## -+ -+# Only configure Armband stuff when ARMBAND_BASE is set -+ifdef ARMBAND_BASE -+ # Armband plugins, supported archs & specific info -+ export PLUGINS := f_odlpluginbuild f_bgpvpn-pluginbuild f_ovs-nsh-dpdk-pluginbuild -+ export UBUNTU_ARCH := amd64 arm64 -+ export PRODNO := OPNFV_A_FUEL -+ export MIRROR_MOS_UBUNTU := linux.enea.com -+ export EXTRA_RPM_REPOS := armband,http://linux.enea.com/mos-repos/centos/mos9.0-centos7/armband/x86_64,10 -+ -+ # Temporary fuel-plugin-builder repo info for runtime patching -+ export FPB_REPO := https://github.com/openstack/fuel-plugins -+ export FPB_BRANCH := master -+ export FPB_CHANGE := refs/changes/31/311031/2 -+ -+ # Armband git submodules for Fuel/OPNFV components -+ export ASTUTE_REPO := ${ARMBAND_BASE}/upstream/fuel-astute -+ export ASTUTE_COMMIT := HEAD -+ -+ export NAILGUN_REPO := ${ARMBAND_BASE}/upstream/fuel-web -+ export NAILGUN_COMMIT := HEAD -+ -+ export FUEL_AGENT_REPO := ${ARMBAND_BASE}/upstream/fuel-agent -+ export FUEL_AGENT_COMMIT := HEAD -+ -+ export FUEL_NAILGUN_AGENT_REPO := ${ARMBAND_BASE}/upstream/fuel-nailgun-agent -+ export FUEL_NAILGUN_AGENT_COMMIT := HEAD -+ -+ export FUEL_MIRROR_REPO := ${ARMBAND_BASE}/upstream/fuel-mirror -+ export FUEL_MIRROR_COMMIT := HEAD -+ -+ export FUELLIB_REPO := ${ARMBAND_BASE}/upstream/fuel-library -+ export FUELLIB_COMMIT := HEAD -+ -+ export FUEL_PLUGIN_ODL_REPO := ${ARMBAND_BASE}/upstream/fuel-plugin-opendaylight -+ export FUEL_PLUGIN_ODL_BRANCH := armband-workbench -+ export FUEL_PLUGIN_ODL_CHANGE := HEAD -+ export OPNFV_QUAGGE_PACKAGING_REPO := https://github.com/alexandruavadanii/opnfv-quagga-packaging -+ -+ export OVS_NSH_DPDK_REPO := ${ARMBAND_BASE}/upstream/fuel-plugin-ovs -+ export OVS_NSH_DPDK_BRANCH := HEAD -+ -+ export VSPERF_REPO := ${ARMBAND_BASE}/upstream/vswitchperf -+ export VSPERF_BRANCH := armband-workbench -+ export VSPERF_CHANGE := HEAD -+endif -diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile -index b38ea4c..624f233 100644 ---- a/build/docker/Dockerfile -+++ b/build/docker/Dockerfile -@@ -30,7 +30,7 @@ RUN echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy RSYNC - # Keeping PWD is needed to build as root - RUN echo "Defaults env_keep += \"PWD\"" > /etc/sudoers.d/keep-pwd - # Keeping variables for ISO build --RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL LATEST_TARGET_UBUNTU UBUNTU_ARCH\"" > /etc/sudoers.d/keep-mos -+RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL LATEST_TARGET_UBUNTU UBUNTU_ARCH ARMBAND_BASE\"" > /etc/sudoers.d/keep-mos - RUN chmod 0440 /etc/sudoers.d/open-sudo - RUN chmod 0440 /etc/sudoers.d/keep-proxies - RUN chmod 0440 /etc/sudoers.d/keep-pwd -diff --git a/build/docker/runcontext b/build/docker/runcontext -index daad663..e4874df 100755 ---- a/build/docker/runcontext -+++ b/build/docker/runcontext -@@ -42,6 +42,10 @@ GITROOT=`git rev-parse --show-toplevel` - CID_FILE=`mktemp -u -t runcontext.XXXXXXXXXX` - CONTEXT_DIR=`mktemp -d ${GITROOT}/.docker_contextXXXXXX` - -+if [[ $ARMBAND_BASE ]]; then -+ GITROOT=$ARMBAND_BASE -+fi -+ - # If RSYNC_CONNECT_PROG is used, we need to copy all of - # the SSH structure, should one of the keys need to be - # used. -@@ -115,7 +119,7 @@ RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm \ - -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE \ - -e BUILD_FUEL_PLUGINS -e MIRROR_UBUNTU -e MIRROR_UBUNTU_ROOT \ - -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL \ -- -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH \ -+ -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e ARMBAND_BASE \ - -u $USER_ID:$GROUP_ID -w $PWD \ - -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT" - diff --git a/patches/opnfv-fuel/0028-bootstrap-Add-lshw-package.patch b/patches/opnfv-fuel/arm64-bug-fixes/0001-bootstrap-Add-lshw-package.patch index a811f2f3..61578bfe 100644 --- a/patches/opnfv-fuel/0028-bootstrap-Add-lshw-package.patch +++ b/patches/opnfv-fuel/arm64-bug-fixes/0001-bootstrap-Add-lshw-package.patch @@ -17,10 +17,11 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 1 insertion(+) diff --git a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml -index 15d9e9d..b45a14a 100644 +index fcf4257..264ae0e 100644 --- a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml +++ b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml -@@ -17,5 +17,6 @@ +@@ -24,6 +24,7 @@ + - linux-headers-generic - live-boot - live-boot-initramfs-tools + - lshw diff --git a/patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch b/patches/opnfv-fuel/arm64-bug-fixes/0002-net-check-add-support-for-faulty-operstate.patch index 8a765c92..a7006fcc 100644 --- a/patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch +++ b/patches/opnfv-fuel/arm64-bug-fixes/0002-net-check-add-support-for-faulty-operstate.patch @@ -15,13 +15,13 @@ Signed-off-by: Stefan Sicleru <stefan.sicleru@enea.com> --- ...et-check-add-support-for-faulty-operstate.patch | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) - create mode 100644 build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch + create mode 100644 build/f_repos/patch/network-checker/0010-net-check-add-support-for-faulty-operstate.patch -diff --git a/build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch b/build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch +diff --git a/build/f_repos/patch/network-checker/0010-net-check-add-support-for-faulty-operstate.patch b/build/f_repos/patch/network-checker/0010-net-check-add-support-for-faulty-operstate.patch new file mode 100644 index 0000000..71e7b73 --- /dev/null -+++ b/build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch ++++ b/build/f_repos/patch/network-checker/0010-net-check-add-support-for-faulty-operstate.patch @@ -0,0 +1,38 @@ +From: Stefan Sicleru <stefan.sicleru@enea.com> +Date: Tue, 30 Aug 2016 17:30:24 +0200 @@ -58,6 +58,6 @@ index 0000000..71e7b73 ++ return 'Link detected: yes' in '\n'.join(output).replace('\n', ' ') ++ ++ return False -+ ++ + def _ensure_iface_up(self, iface, vid=None): + """Ensures interface is with vid up.""" diff --git a/patches/opnfv-fuel/0027-UX-Update-bootstrap-target-build-time-estimate.patch b/patches/opnfv-fuel/cross-bootstrap/0001-UX-Update-bootstrap-target-build-time-estimate.patch index fe623957..91ba18a0 100644 --- a/patches/opnfv-fuel/0027-UX-Update-bootstrap-target-build-time-estimate.patch +++ b/patches/opnfv-fuel/cross-bootstrap/0001-UX-Update-bootstrap-target-build-time-estimate.patch @@ -8,14 +8,15 @@ introduced by using qemu-user-static. Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- - build/bootstrap_admin_node.sh.patch | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) + .../0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) -diff --git a/build/patch-repos/0010-bootstrap_admin_node.sh.patch b/build/patch-repos/0010-bootstrap_admin_node.sh.patch -index c66b497..46b53e6 100644 ---- a/build/patch-repos/0010-bootstrap_admin_node.sh.patch -+++ b/build/patch-repos/0010-bootstrap_admin_node.sh.patch -@@ -8,5 +8,20 @@ +diff --git a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch +index 446d0b6..c2e664c 100644 +--- a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch ++++ b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch +@@ -10,6 +10,21 @@ diff --git a/iso/bootstrap_admin_node.sh b/iso/bootstrap_admin_node.sh + index 3197c91..db3123d 100755 --- a/iso/bootstrap_admin_node.sh +++ b/iso/bootstrap_admin_node.sh +@@ -86,9 +86,11 @@ diff --git a/patches/opnfv-fuel/0021-Build-bootstrap-image-for-arm64.patch b/patches/opnfv-fuel/cross-bootstrap/0002-Build-bootstrap-image-for-arm64.patch index 4daf733e..836cb2cf 100644 --- a/patches/opnfv-fuel/0021-Build-bootstrap-image-for-arm64.patch +++ b/patches/opnfv-fuel/cross-bootstrap/0002-Build-bootstrap-image-for-arm64.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Thu, 3 Mar 2016 19:04:07 +0100 Subject: [PATCH] Build bootstrap image for arm64 @@ -6,13 +6,15 @@ For now the arch is hardcoded for simplicity. We should detect this but how? If we're multi-arch then one bootstrap image should be built per supported arch. This requires Fuel refactoring. --- - build/bootstrap_admin_node.sh.patch | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) + .../0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch +index c2e664c..12d0dfb 100644 +--- a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch ++++ b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch +@@ -73,6 +73,15 @@ index 3197c91..db3123d 100755 -diff --git a/build/patch-repos/0010-bootstrap_admin_node.sh.patch b/build/patch-repos/0010-bootstrap_admin_node.sh.patch ---- a/build/patch-repos/0010-bootstrap_admin_node.sh.patch -+++ b/build/patch-repos/0010-bootstrap_admin_node.sh.patch -@@ -53,3 +53,12 @@ # Enable iptables systemctl enable iptables.service +@@ -484,7 +490,7 @@ @@ -25,3 +27,5 @@ diff --git a/build/patch-repos/0010-bootstrap_admin_node.sh.patch b/build/patch- + fuel notify --topic "done" --send "${bs_done_message}" + else @@ -532,6 +545,16 @@ systemctl start ntpd + + bash /etc/rc.local diff --git a/patches/opnfv-fuel/0022-bootstrap-Use-public-Ubuntu-ports-mirrors.patch b/patches/opnfv-fuel/cross-bootstrap/0003-bootstrap-Use-public-Ubuntu-ports-mirrors.patch index ff13b39b..157306b2 100644 --- a/patches/opnfv-fuel/0022-bootstrap-Use-public-Ubuntu-ports-mirrors.patch +++ b/patches/opnfv-fuel/cross-bootstrap/0003-bootstrap-Use-public-Ubuntu-ports-mirrors.patch @@ -14,10 +14,10 @@ current config. 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml -index aa12c45..2e4843d 100644 +index 264ae0e..17e161f 100644 --- a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml +++ b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml -@@ -36,19 +36,19 @@ +@@ -49,19 +49,19 @@ repos: - name: ubuntu section: "main universe multiverse" @@ -40,7 +40,9 @@ index aa12c45..2e4843d 100644 priority: suite: trusty-security type: deb -@@ -60,2 +60,3 @@ +@@ -73,4 +73,5 @@ + type: deb + skip_default_img_build: false direct_repo_addresses: + - "ports.ubuntu.com" - "127.0.0.1" diff --git a/patches/opnfv-fuel/0031-post-scripts-Enable-systemd-binfmt-for-first-boot.patch b/patches/opnfv-fuel/cross-bootstrap/0004-post-scripts-Enable-systemd-binfmt-for-first-boot.patch index 03e877a1..26b898fe 100644 --- a/patches/opnfv-fuel/0031-post-scripts-Enable-systemd-binfmt-for-first-boot.patch +++ b/patches/opnfv-fuel/cross-bootstrap/0004-post-scripts-Enable-systemd-binfmt-for-first-boot.patch @@ -25,37 +25,14 @@ automatically started. Of course, this only affects the first boot. Finally, this commit adds an OPNFV post-install script in /opt/opnfv/bootstrap/post.d, which starts systemd-binfmt service. --- - build/bootstrap_admin_node.sh.patch | 15 ++++++++++ .../post-scripts/80_prepare_cross_builds.sh | 32 ++++++++++++++++++++++ - 2 files changed, 47 insertions(+) + ...PNFV-Additions-to-bootstrap_admin_node.sh.patch | 13 +++++++++ + 2 files changed, 45 insertions(+) create mode 100755 build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh -diff --git a/build/patch-repos/0010-bootstrap_admin_node.sh.patch b/build/patch-repos/0010-bootstrap_admin_node.sh.patch -index b1ea90b..7f16d0b 100644 ---- a/build/patch-repos/0010-bootstrap_admin_node.sh.patch -+++ b/build/patch-repos/0010-bootstrap_admin_node.sh.patch -@@ -24,5 +24,18 @@ - nodes over PXE, they will be discovered and become available for installing \ - OpenStack on them" -+@@ -239,6 +239,12 @@ -+ # /etc/fuel_openstack_version is provided by 'fuel-openstack-metadata' package -+ OPENSTACK_VERSION=$(cat /etc/fuel_openstack_version) -+ -++# FIXME(armband): This part might be moved to an earlier stage later -++# /etc/fuel_openstack_arch is constructed based on local mirror metadata -++grep -oP "^Architectures: \K.*$" \ -++ ${wwwdir}/${OPENSTACK_VERSION}/ubuntu/x86_64/dists/mos${FUEL_RELEASE}/Release > \ -++ /etc/fuel_openstack_arch -++ -+ # We do not ship debian-installer kernel and initrd on ISO. -+ # But we still need to be able to create ubuntu cobbler distro -+ # which requires kernel and initrd to be available. So, we - @@ -339,8 +339,22 @@ fuelmenu --save-only --iface=$ADMIN_INTERFACE || fail - set +x - echo "Done!" diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh new file mode 100755 -index 0000000..d33d1d1 +index 0000000..01eb2e2 --- /dev/null +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh @@ -0,0 +1,32 @@ @@ -91,3 +68,27 @@ index 0000000..d33d1d1 +fi + +echo "Done preparing cross-building" +diff --git a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch +index 12d0dfb..81d196b 100644 +--- a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch ++++ b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch +@@ -25,6 +25,19 @@ index 3197c91..db3123d 100755 + bs_done_message="Default bootstrap image building done. Now you can boot new \ + nodes over PXE, they will be discovered and become available for installing \ + OpenStack on them" ++@@ -239,6 +239,12 @@ ++ # /etc/fuel_openstack_version is provided by 'fuel-openstack-metadata' package ++ OPENSTACK_VERSION=$(cat /etc/fuel_openstack_version) ++ +++# FIXME(armband): This part might be moved to an earlier stage later +++# /etc/fuel_openstack_arch is constructed based on local mirror metadata +++grep -oP "^Architectures: \K.*$" \ +++ ${wwwdir}/${OPENSTACK_VERSION}/ubuntu/x86_64/dists/mos${FUEL_RELEASE}/Release > \ +++ /etc/fuel_openstack_arch +++ ++ # We do not ship debian-installer kernel and initrd on ISO. ++ # But we still need to be able to create ubuntu cobbler distro ++ # which requires kernel and initrd to be available. So, we + @@ -339,8 +339,22 @@ fuelmenu --save-only --iface=$ADMIN_INTERFACE || fail + set +x + echo "Done!" diff --git a/patches/opnfv-fuel/0032-mcagent-Increase-max-shell-command-timeout-to-2h.patch b/patches/opnfv-fuel/cross-bootstrap/0005-mcagent-Increase-max-shell-command-timeout-to-2h.patch index f5fc4cf1..c04cc8ab 100644 --- a/patches/opnfv-fuel/0032-mcagent-Increase-max-shell-command-timeout-to-2h.patch +++ b/patches/opnfv-fuel/cross-bootstrap/0005-mcagent-Increase-max-shell-command-timeout-to-2h.patch @@ -16,14 +16,14 @@ for mcagent has to be increased. [ Alexandru Avadanii ] Repackaged, based on Stan's `fuel-astute` patch. -Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- .../f_bootstrap/post-scripts/80_prepare_cross_builds.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh -index d33d1d1..d78b850 100755 +index 01eb2e2..12f66e6 100755 --- a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh @@ -26,6 +26,20 @@ if which dpkg > /dev/null 2>&1; then @@ -46,4 +46,4 @@ index d33d1d1..d78b850 100755 + /usr/libexec/mcollective/mcollective/agent/execute_shell_command.ddl fi fi - + diff --git a/patches/opnfv-fuel/0033-bootstrap-Use-gzip-instead-of-xz-compression.patch b/patches/opnfv-fuel/cross-bootstrap/0006-bootstrap-Use-gzip-instead-of-xz-compression.patch index e7b176b9..ccbd3e1c 100644 --- a/patches/opnfv-fuel/0033-bootstrap-Use-gzip-instead-of-xz-compression.patch +++ b/patches/opnfv-fuel/cross-bootstrap/0006-bootstrap-Use-gzip-instead-of-xz-compression.patch @@ -14,13 +14,13 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 19 insertions(+) diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh -index 3839d62..7ceaacc 100755 +index 12f66e6..3cb22f3 100755 --- a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh @@ -27,6 +27,11 @@ if which dpkg > /dev/null 2>&1; then exit 1 fi - + + # Determine python site-packages directory location + PYTHON_SITEPKGS_DIR=$(python -c \ + "from distutils.sysconfig import get_python_lib; print(get_python_lib())") @@ -49,4 +49,4 @@ index 3839d62..7ceaacc 100755 + fi fi fi - + diff --git a/patches/opnfv-fuel/0034-Nailgun-Increase-target-image-build-timeout.patch b/patches/opnfv-fuel/cross-bootstrap/0007-Nailgun-Increase-target-image-build-timeout.patch index 2fbe680a..19a025f7 100644 --- a/patches/opnfv-fuel/0034-Nailgun-Increase-target-image-build-timeout.patch +++ b/patches/opnfv-fuel/cross-bootstrap/0007-Nailgun-Increase-target-image-build-timeout.patch @@ -10,14 +10,14 @@ to be safer. [ Alexandru Avadanii ] Moved original patch wrote by Stan to post-install. -Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- .../f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh -index 7ceaacc..0435a28 100755 +index 3cb22f3..c106bc3 100755 --- a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh @@ -45,6 +45,13 @@ if which dpkg > /dev/null 2>&1; then @@ -31,6 +31,6 @@ index 7ceaacc..0435a28 100755 + ${PYTHON_SITEPKGS_DIR}/nailgun/settings.yaml + echo "INFO: [1h] => [2h] updated nailgun image build timeout." + fi - + # Bootstrap: Use gzip instead of xz compression. # diff --git a/patches/opnfv-fuel/0035-m1.micro-Increase-profile-RAM-size-to-128MB.patch b/patches/opnfv-fuel/cross-bootstrap/0008-m1.micro-Increase-profile-RAM-size-to-128MB.patch index 89720a2b..a54222a4 100644 --- a/patches/opnfv-fuel/0035-m1.micro-Increase-profile-RAM-size-to-128MB.patch +++ b/patches/opnfv-fuel/cross-bootstrap/0008-m1.micro-Increase-profile-RAM-size-to-128MB.patch @@ -11,7 +11,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 15 insertions(+) diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh -index 0435a28..078f117 100755 +index c106bc3..0b48ca2 100755 --- a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh @@ -66,6 +66,21 @@ if which dpkg > /dev/null 2>&1; then @@ -35,4 +35,4 @@ index 0435a28..078f117 100755 + fi fi fi - + diff --git a/patches/opnfv-fuel/0001-kernel-flavor-linux-image-generic-lts-xenial.patch b/patches/opnfv-fuel/kernel-bump/0001-kernel-flavor-linux-image-generic-lts-xenial.patch index 70847ba7..c3a8da4a 100644 --- a/patches/opnfv-fuel/0001-kernel-flavor-linux-image-generic-lts-xenial.patch +++ b/patches/opnfv-fuel/kernel-bump/0001-kernel-flavor-linux-image-generic-lts-xenial.patch @@ -13,10 +13,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml -index daef3d5..2985619 100644 +index 17e161f..fb0ad1a 100644 --- a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml +++ b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml -@@ -5,7 +5,7 @@ +@@ -13,7 +13,7 @@ extra_dirs: - /usr/share/fuel_bootstrap_cli/files/trusty output_dir: /tmp/ @@ -25,7 +25,7 @@ index daef3d5..2985619 100644 packages: - fuel-agent - hwloc -@@ -13,6 +13,6 @@ +@@ -21,7 +21,7 @@ - i40e-dkms - linux-firmware - linux-firmware-nonfree @@ -33,19 +33,20 @@ index daef3d5..2985619 100644 + - linux-headers-generic-lts-xenial - live-boot - live-boot-initramfs-tools + - lshw diff --git a/deploy/config/dea_base.yaml b/deploy/config/dea_base.yaml -index 658b328..5f3c156 100644 +index 5a25040..f5a03e2 100644 --- a/deploy/config/dea_base.yaml +++ b/deploy/config/dea_base.yaml @@ -474,9 +474,9 @@ settings: - + linux-firmware-nonfree - + - linux-headers-generic-lts-trusty + linux-headers-generic-lts-xenial - + - linux-image-generic-lts-trusty + linux-image-generic-lts-xenial - + lvm2 - + diff --git a/patches/opnfv-fuel/0002-FIXME-deploy-EFI-Skip-re-ordering-boot-via-IPMI.patch b/patches/opnfv-fuel/multiarch-efi/0001-FIXME-deploy-EFI-Skip-re-ordering-boot-via-IPMI.patch index d6ff3818..3b3c612a 100644 --- a/patches/opnfv-fuel/0002-FIXME-deploy-EFI-Skip-re-ordering-boot-via-IPMI.patch +++ b/patches/opnfv-fuel/multiarch-efi/0001-FIXME-deploy-EFI-Skip-re-ordering-boot-via-IPMI.patch @@ -19,7 +19,7 @@ index 93dc395..1d2dfeb 100644 --- a/deploy/deploy_env.py +++ b/deploy/deploy_env.py @@ -255,7 +255,9 @@ class CloudDeploy(object): - + def set_boot_order_nodes(self): self.power_off_nodes() - self.set_boot_order(['pxe', 'disk']) @@ -27,5 +27,5 @@ index 93dc395..1d2dfeb 100644 + # Until we choose an uniform design on EFI systems, just disable it + # self.set_boot_order(['pxe', 'disk']) self.power_on_nodes() - + def get_put_deploy_log(self): diff --git a/patches/opnfv-fuel/0020-Add-arm64-deb-repositories-setup.patch b/patches/opnfv-fuel/multiarch-mirrors/0001-Add-arm64-deb-repositories-setup.patch index 9083ceb1..c3a76d1e 100644 --- a/patches/opnfv-fuel/0020-Add-arm64-deb-repositories-setup.patch +++ b/patches/opnfv-fuel/multiarch-mirrors/0001-Add-arm64-deb-repositories-setup.patch @@ -1,4 +1,4 @@ -From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> +From: Stanislaw Kardach <stanislaw.kardach@cavium.com> Date: Wed, 24 Feb 2016 20:04:03 +0100 Subject: [PATCH] Add arm64 deb repositories setup @@ -12,7 +12,7 @@ Subject: [PATCH] Add arm64 deb repositories setup 6 files changed, 52 insertions(+), 15 deletions(-) diff --git a/build/f_isoroot/f_kscfg/ks.cfg.patch b/build/f_isoroot/f_kscfg/ks.cfg.patch -index a6840e4..e1ae8fc 100644 +index a6840e4..84a241f 100644 --- a/build/f_isoroot/f_kscfg/ks.cfg.patch +++ b/build/f_isoroot/f_kscfg/ks.cfg.patch @@ -1,6 +1,16 @@ @@ -22,7 +22,7 @@ index a6840e4..e1ae8fc 100644 +*** 448,453 **** +--- 448,454 ---- + cp ${SOURCE}/.treeinfo ${repodir}/centos/x86_64 -+ ++ + # Copying Ubuntu files ++ # FIXME: This is missleading as dist/pool may contain multiple arch! + mkdir -p ${repodir}/ubuntu/x86_64/images @@ -39,14 +39,14 @@ index 0d15aec..e6392f8 100644 @@ -16,12 +16,18 @@ TreeDefault { Directory "pool"; }; - + -BinDirectory "pool/main" { +BinDirectory "pool/main/binary-amd64" { Packages "dists/trusty/main/binary-amd64/Packages"; BinOverride "./indices/override.trusty.main"; ExtraOverride "./indices/override.trusty.extra.main"; }; - + +BinDirectory "pool/main/binary-arm64" { + Packages "dists/trusty/main/binary-arm64/Packages"; + BinOverride "./indices/override.trusty.main"; @@ -75,13 +75,13 @@ index 3b5b239..c6ab4fb 100644 @@ -16,11 +16,16 @@ TreeDefault { Directory "pool"; }; - + -BinDirectory "pool/debian-installer" { +BinDirectory "pool/debian-installer/binary-amd64" { Packages "dists/trusty/main/debian-installer/binary-amd64/Packages"; BinOverride "./indices/override.trusty.main.debian-installer"; }; - + +BinDirectory "pool/debian-installer/binary-arm64" { + Packages "dists/trusty/main/debian-installer/binary-arm64/Packages"; + BinOverride "./indices/override.trusty.main.debian-installer"; @@ -91,13 +91,13 @@ index 3b5b239..c6ab4fb 100644 Packages { Extensions ".udeb"; diff --git a/build/install/install.sh b/build/install/install.sh -index 4e0389e..8c29e08 100755 +index 866d304..9e003bb 100755 --- a/build/install/install.sh +++ b/build/install/install.sh @@ -122,12 +122,24 @@ prep_make_live() { ssh-copy-id root@$FUELHOST sshfs root@1${FUELHOST}:/ $TMP_HOSTMOUNT - + - if [ -f $REPO/dists/trusty/main/binary-amd64/Packages.backup ]; then + for arch in arm64 amd64; do + if [ -f $REPO/dists/trusty/main/binary-${arch}/Packages.backup ]; then @@ -115,7 +115,7 @@ index 4e0389e..8c29e08 100755 echo "Error - found backup file for Packages!" exit 1 fi - + - if [ -f $REPO/dists/trusty/main/binary-amd64/Packages.gz.backup ]; then + if [ -f $REPO/dists/trusty/main/binary-arm64/Packages.gz.backup ]; then echo "Error - found backup file for Packages.gz!" @@ -124,7 +124,7 @@ index 4e0389e..8c29e08 100755 @@ -142,8 +154,10 @@ prep_make_live() { exit 1 fi - + - cp $REPO/dists/trusty/main/binary-amd64/Packages $REPO/dists/trusty/main/binary-amd64/Packages.backup - cp $REPO/dists/trusty/main/binary-amd64/Packages.gz $REPO/dists/trusty/main/binary-amd64/Packages.gz.backup + for arch in arm64 amd64; do @@ -140,7 +140,7 @@ index a9e74bc..e90c632 100755 +++ b/build/install/uninstall.sh @@ -31,15 +31,17 @@ DEST=$MOUNT REPO=$DEST/var/www/nailgun/ubuntu/fuelweb/x86_64 - + cd $REPO -if [ ! -f $REPO/dists/trusty/main/binary-amd64/Packages.backup ]; then - echo "Error - didn't find backup file for Packages!" @@ -151,7 +151,7 @@ index a9e74bc..e90c632 100755 + echo "Error - didn't find backup file for Packages for ${arch}!" + exit 1 + fi - + -if [ ! -f $REPO/dists/trusty/main/binary-amd64/Packages.gz.backup ]; then - echo "Error - didn't find backup file for Packages.gz!" - exit 1 @@ -161,6 +161,6 @@ index a9e74bc..e90c632 100755 + exit 1 + fi +done - + if [ ! -f $REPO/dists/trusty/Release.backup ]; then echo "Error - didn't find backup file for Release!" diff --git a/patches/opnfv-fuel/0048-fpb-Support-multiple-versions-of-packages.patch b/patches/opnfv-fuel/multiarch-plugins/0001-fpb-Support-multiple-versions-of-packages.patch index 25187b4e..35bef5c8 100644 --- a/patches/opnfv-fuel/0048-fpb-Support-multiple-versions-of-packages.patch +++ b/patches/opnfv-fuel/multiarch-plugins/0001-fpb-Support-multiple-versions-of-packages.patch @@ -19,7 +19,7 @@ index 624f233..ab0d0d3 100644 +++ b/build/docker/Dockerfile @@ -23,7 +23,14 @@ RUN apt-get install -y software-properties-common python-software-properties \ build-essential ruby-dev rubygems-integration python-pip git rpm createrepo dpkg-dev - + RUN gem install fpm -RUN pip install fuel-plugin-builder + @@ -30,14 +30,16 @@ index 624f233..ab0d0d3 100644 + (git fetch origin INSERT_FPB_CHANGE && git checkout FETCH_HEAD)) && \ + python setup.py sdist && pip install ./dist/fuel-plugin-builder-*.tar.gz && \ + cd .. && rm -rf fuel-plugins - + RUN echo "ALL ALL=NOPASSWD: ALL" > /etc/sudoers.d/open-sudo RUN echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy RSYNC_PROXY RSYNC_CONNECT_PROG npm_config_registry\"" > /etc/sudoers.d/keep-proxies diff --git a/build/docker/Makefile b/build/docker/Makefile -index d4423b0..226bbd0 100644 +index 783881e..74f6346 100644 --- a/build/docker/Makefile +++ b/build/docker/Makefile -@@ -25,4 +25,8 @@ all: .docker +@@ -34,6 +34,10 @@ all: .docker + + .dockercfg: $(FILES) cp Dockerfile ubuntu-builder/Dockerfile + # Only add FPB ENVs when set - needed to fetch, patch and install FPB + test -n "${FPB_REPO}" && sed -i "s;INSERT_FPB_REPO;${FPB_REPO};" ubuntu-builder/Dockerfile || exit 0 diff --git a/patches/opnfv-fuel/0007-Remove-check-for-root.patch b/patches/opnfv-fuel/upstream-backports/0001-deploy.sh-Remove-check-for-root-rm-umask-0000.patch index 2282f59d..cd30166a 100644 --- a/patches/opnfv-fuel/0007-Remove-check-for-root.patch +++ b/patches/opnfv-fuel/upstream-backports/0001-deploy.sh-Remove-check-for-root-rm-umask-0000.patch @@ -1,25 +1,39 @@ -From b7d5f0ca9a76de6d99fc5d6f5cbb8df864c62b7b Mon Sep 17 00:00:00 2001 -From: Josep Puigdemont <josep.puigdemont@enea.com> -Date: Wed, 4 May 2016 14:27:23 +0200 -Subject: [PATCH] Remove check for root +From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +Date: Fri, 6 May 2016 03:07:40 +0200 +Subject: [PATCH] deploy.sh: Remove check for root (rm umask 0000) + +Patch(es) by Josep, signed by Alex only for upstreaming. + +[Alexandru Avadanii] +Squashed two atomic commits into one change. -Change-Id: Ic6bfaf07c0d9d347aec2df8724184d0314665503 Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com> +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- - ci/deploy.sh | 5 ----- - deploy/deploy-config.py | 1 - - deploy/deploy.py | 2 -- - deploy/environments/virtual_fuel.py | 2 -- - 4 files changed, 10 deletions(-) + ci/deploy.sh | 11 ----------- + deploy/deploy-config.py | 1 - + deploy/deploy.py | 2 -- + deploy/environments/virtual_fuel.py | 2 -- + 4 files changed, 16 deletions(-) diff --git a/ci/deploy.sh b/ci/deploy.sh -index c08a94b..081806c 100755 +index 8411714..081806c 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh -@@ -209,11 +209,6 @@ do +@@ -84,9 +84,6 @@ Input parameters to the build script is: + -i .iso image to be deployed (needs to be provided in a URI + style, it can be a local resource: file:// or a remote resource http(s)://) + +-NOTE: Root priviledges are needed for this script to run +- +- + Examples: + sudo `basename $0` -b file:///home/jenkins/lab-config -l lf -p pod1 -s ha_odl-l3_heat_ceilometer -i file:///home/jenkins/myiso.iso + EOF +@@ -212,11 +209,6 @@ do esac done - + -if [[ $EUID -ne 0 ]]; then - echo "This script must be run as root" 1>&2 - exit 1 @@ -28,33 +42,43 @@ index c08a94b..081806c 100755 if [ -z $BASE_CONFIG_URI ] || [ -z $TARGET_LAB ] || \ [ -z $TARGET_POD ] || [ -z $DEPLOY_SCENARIO ] || \ [ -z $ISO ]; then +@@ -231,9 +223,6 @@ fi + # Enable the automatic exit trap + trap do_exit SIGINT SIGTERM EXIT + +-# Set no restrictive umask so that Jenkins can removeeee any residuals +-umask 0000 +- + clean + + pushd ${DEPLOY_DIR} > /dev/null diff --git a/deploy/deploy-config.py b/deploy/deploy-config.py -index 65d51b2..88a1111 100644 +index 2a09aa3..02debe2 100644 --- a/deploy/deploy-config.py +++ b/deploy/deploy-config.py -@@ -40,7 +40,6 @@ from common import ( +@@ -41,7 +41,6 @@ from common import ( check_file_exists, create_dir_if_not_exists, delete, - check_if_root, ArgParser, ) - + diff --git a/deploy/deploy.py b/deploy/deploy.py -index 56e5bd5..a021e28 100755 +index fe213e5..08702d2 100755 --- a/deploy/deploy.py +++ b/deploy/deploy.py -@@ -33,7 +33,6 @@ from common import ( +@@ -34,7 +34,6 @@ from common import ( check_dir_exists, create_dir_if_not_exists, delete, - check_if_root, ArgParser, ) - -@@ -234,7 +233,6 @@ class AutoDeploy(object): + +@@ -252,7 +251,6 @@ class AutoDeploy(object): return 0 - + def run(self): - check_if_root() if self.cleanup_only: @@ -74,12 +98,9 @@ index b1a76e4..4ff68f6 100644 ) @@ -135,7 +134,6 @@ class VirtualFuel(ExecutionEnvironment): vm_definition_overwrite) - + def setup_environment(self): - check_if_root() self.cleanup_environment() self.create_vm() - --- -2.5.5 diff --git a/patches/opnfv-fuel/0040-Backport-dpkg-checkbuilddeps-to-mk-build-deps.patch b/patches/opnfv-fuel/upstream-backports/0002-Backport-dpkg-checkbuilddeps-to-mk-build-deps.patch index 5dde448f..eb81942e 100644 --- a/patches/opnfv-fuel/0040-Backport-dpkg-checkbuilddeps-to-mk-build-deps.patch +++ b/patches/opnfv-fuel/upstream-backports/0002-Backport-dpkg-checkbuilddeps-to-mk-build-deps.patch @@ -9,14 +9,14 @@ Backported from [1]. Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- ...ce-dpkg-checkbuilddeps-with-mk-build-deps.patch | 38 ++++++++++++++++++++++ - 1 files changed, 38 insertions(+) - create mode 100644 build/replace-dpkg-checkbuilddeps-with-mk-build-deps.patch + 1 file changed, 38 insertions(+) + create mode 100644 build/f_repos/patch/fuel-main/0005-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch -diff --git a/build/patch-repos/0040-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch b/build/patch-repos/0040-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch +diff --git a/build/f_repos/patch/fuel-main/0005-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch b/build/f_repos/patch/fuel-main/0005-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch new file mode 100644 index 0000000..896f3cf --- /dev/null -+++ b/build/patch-repos/0040-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch ++++ b/build/f_repos/patch/fuel-main/0005-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch @@ -0,0 +1,38 @@ +From: Sergii Golovatiuk <sgolovatiuk@mirantis.com> +Date: Fri, 3 Jun 2016 12:26:19 +0200 @@ -40,7 +40,7 @@ index 0000000..896f3cf +@@ -10,7 +10,7 @@ clean-deb: + done + sudo rm -rf $(BUILD_DIR)/packages/deb -+ ++ +-$(BUILD_DIR)/packages/deb/buildd.tar.gz: SANDBOX_DEB_PKGS:=wget bzip2 apt-utils build-essential python-setuptools python-pbr devscripts debhelper fakeroot ++$(BUILD_DIR)/packages/deb/buildd.tar.gz: SANDBOX_DEB_PKGS:=wget bzip2 apt-utils build-essential fakeroot devscripts equivs debhelper python-setuptools python-pbr + $(BUILD_DIR)/packages/deb/buildd.tar.gz: SANDBOX_UBUNTU:=$(BUILD_DIR)/packages/deb/chroot diff --git a/patches/vswitchperf/0001-ci-build-vsperf-make-qemu-system-name-arch-indep.patch b/patches/vswitchperf/0001-ci-build-vsperf-make-qemu-system-name-arch-indep.patch index 29e8a1d3..0fd972cc 100644 --- a/patches/vswitchperf/0001-ci-build-vsperf-make-qemu-system-name-arch-indep.patch +++ b/patches/vswitchperf/0001-ci-build-vsperf-make-qemu-system-name-arch-indep.patch @@ -10,7 +10,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ci/build-vsperf.sh b/ci/build-vsperf.sh -index 5370898..fc38747 100755 +index a02de00..fa0d46a 100755 --- a/ci/build-vsperf.sh +++ b/ci/build-vsperf.sh @@ -87,14 +87,15 @@ TEST_REPORT_LOG_DIR="${HOME}/opnfv/$PROJECT/results/$BRANCH" @@ -22,7 +22,7 @@ index 5370898..fc38747 100755 sudo pkill python3 &> /dev/null - sudo killall -9 qemu-system-x86_64 &> /dev/null + sudo killall -9 "${qemu_system_name}" &> /dev/null - + # sometimes qemu resists to terminate, so wait a bit and kill it again - if pgrep qemu-system-x86_64 &> /dev/null ; then + if pgrep "${qemu_system_name}" &> /dev/null ; then @@ -31,4 +31,4 @@ index 5370898..fc38747 100755 + sudo killall -9 "${qemu_system_name}" &> /dev/null sleep 5 fi - + diff --git a/patches/vswitchperf/0002-s-u-build_base_machine-Arch-indep-libdir-s.patch b/patches/vswitchperf/0002-s-u-build_base_machine-Arch-indep-libdir-s.patch index 0a92144f..f82aaae7 100644 --- a/patches/vswitchperf/0002-s-u-build_base_machine-Arch-indep-libdir-s.patch +++ b/patches/vswitchperf/0002-s-u-build_base_machine-Arch-indep-libdir-s.patch @@ -10,21 +10,21 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/systems/ubuntu/build_base_machine.sh b/systems/ubuntu/build_base_machine.sh -index a2b48a2..7cbe78e 100755 +index 1b42a79..b0f3740 100755 --- a/systems/ubuntu/build_base_machine.sh +++ b/systems/ubuntu/build_base_machine.sh -@@ -52,11 +52,12 @@ apt-get -y install libfuse-dev +@@ -54,11 +54,12 @@ apt-get -y install libnuma-dev # packages related to VM - + # a few manual fix up on a ubuntu -cd /lib/x86_64-linux-gnu +local arch=$(uname -m) +cd /lib/${arch}-linux-gnu ln -sf libssl.so.1.0.0 libssl.so ln -sf libcrypto.so.1.0.0 libcrypto.so - + -cd /usr/lib/x86_64-linux-gnu +cd /usr/lib/${arch}-linux-gnu ln -sf libxml2.so.2 libxml2.so - - + + diff --git a/upstream/fuel-agent b/upstream/fuel-agent deleted file mode 160000 -Subproject 2cd6925ce2986b58a3ff1dcade12f55a41bff71 diff --git a/upstream/fuel-astute b/upstream/fuel-astute deleted file mode 160000 -Subproject 65309028c2b65cee68bb865f3895ed185922f3b diff --git a/upstream/fuel-library b/upstream/fuel-library deleted file mode 160000 -Subproject 0744f4b3fb170d98c7ba70160cd9b91064865bd diff --git a/upstream/fuel-mirror b/upstream/fuel-mirror deleted file mode 160000 -Subproject 81246a7ecd95c27b388df8f8954e4fb81a3f06e diff --git a/upstream/fuel-nailgun-agent b/upstream/fuel-nailgun-agent deleted file mode 160000 -Subproject 46fa0db0f8944f9e67699d281d462678aaf4db2 diff --git a/upstream/fuel-web b/upstream/fuel-web deleted file mode 160000 -Subproject d3463ad92df45541fc0107801aef71e73a194ec |