aboutsummaryrefslogtreecommitdiffstats
path: root/patches/opnfv-fuel/0015-base-image-Explicitly-call-kpartx.patch
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-12-28 18:41:09 +0100
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-01-05 23:14:01 +0100
commit0e8a4fc5a553bb55c22590c0620ebfd770394e96 (patch)
tree58fdd861d2efbe06bf2749aadcf31a60ccdfbe39 /patches/opnfv-fuel/0015-base-image-Explicitly-call-kpartx.patch
parent11f5bc3ca9191039b9b22e2da8a6e29538d2f6ea (diff)
MaaS: preseed Armband repo via curtin
Instead of installing upstream vanilla kernel from Ubuntu just to upgrade to the one from Armband repo later, preseed Armband repo config via curtin. This allows us to drop a kernel update cycle, thus saving a few minutes at each deploy. While at it, switch salt repo addition to use the maas region reclass section instead of adding a dedicated mechanism for it in the curtin template (only for arm64). [ stable/ euphrates ] Preseed all Armband repos, since Ocata does not have a "common" repo. JIRA: ARMBAND-280 Change-Id: Iad5953a7de80d728f11a4ce3113bd7725100c31c Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> (cherry picked from commit 648ec98613d31e3d9701b9ac1d87aed640b245f3)
Diffstat (limited to 'patches/opnfv-fuel/0015-base-image-Explicitly-call-kpartx.patch')
-rw-r--r--patches/opnfv-fuel/0015-base-image-Explicitly-call-kpartx.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/patches/opnfv-fuel/0015-base-image-Explicitly-call-kpartx.patch b/patches/opnfv-fuel/0015-base-image-Explicitly-call-kpartx.patch
new file mode 100644
index 00000000..5e567c0f
--- /dev/null
+++ b/patches/opnfv-fuel/0015-base-image-Explicitly-call-kpartx.patch
@@ -0,0 +1,80 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Copyright (c) 2017 Enea AB and others.
+:
+: 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
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Tue, 28 Nov 2017 00:22:45 +0100
+Subject: [PATCH] base image: Explicitly call kpartx
+
+qemu-nbd currently available in CentOS 7 does not add partition
+mappings automatically for NBD devices, so add explicit `kpartx`
+calls.
+
+On rare occassions, mapper bindings created by kpartx take longer
+to show up, leading to errors when we try to mount them on.
+Bring back the hardcoded delay to bypass such issues.
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ ci/deploy.sh | 4 ++--
+ mcp/scripts/lib.sh | 9 +++++++--
+ 2 files changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/ci/deploy.sh b/ci/deploy.sh
+index 92319ad..5bd163e 100755
+--- a/ci/deploy.sh
++++ b/ci/deploy.sh
+@@ -272,10 +272,10 @@ pushd "${DEPLOY_DIR}" > /dev/null
+ # Install required packages
+ [ -n "$(command -v apt-get)" ] && sudo apt-get install -y \
+ git make rsync mkisofs curl virtinst cpu-checker qemu-kvm uuid-runtime \
+- libvirt-bin cloud-guest-utils e2fsprogs
++ libvirt-bin cloud-guest-utils e2fsprogs kpartx
+ [ -n "$(command -v yum)" ] && sudo yum install -y --skip-broken \
+ git make rsync genisoimage curl virt-install qemu-kvm util-linux \
+- libvirt cloud-utils-growpart e2fsprogs
++ libvirt cloud-utils-growpart e2fsprogs kpartx
+
+ # For baremetal, python is indirectly required for PDF parsing
+ if [ "${DEPLOY_TYPE}" = 'baremetal' ]; then
+diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
+index 5a69609..754d4f0 100644
+--- a/mcp/scripts/lib.sh
++++ b/mcp/scripts/lib.sh
+@@ -49,18 +49,22 @@ function mount_image {
+ fi
+ done
+ OPNFV_LOOP_DEV=$(losetup -f)
++ OPNFV_MAP_DEV=/dev/mapper/$(basename "${OPNFV_NBD_DEV}")p1
+ export OPNFV_MNT_DIR OPNFV_LOOP_DEV
+ [ -n "${OPNFV_NBD_DEV}" ] && [ -n "${OPNFV_LOOP_DEV}" ] || exit 1
+ qemu-img resize "${image_dir}/${image}" 3G
+ sudo qemu-nbd --connect="${OPNFV_NBD_DEV}" --aio=native --cache=none \
+ "${image_dir}/${image}"
++ sudo kpartx -av "${OPNFV_NBD_DEV}"
+ sleep 5 # /dev/nbdNp1 takes some time to come up
+ # Hardcode partition index to 1, unlikely to change for Ubuntu UCA image
+ if sudo growpart "${OPNFV_NBD_DEV}" 1; then
+- sudo e2fsck -yf "${OPNFV_NBD_DEV}p1" && sudo resize2fs "${OPNFV_NBD_DEV}p1"
++ sudo kpartx -u "${OPNFV_NBD_DEV}"
++ sudo e2fsck -yf "${OPNFV_MAP_DEV}"
++ sudo resize2fs "${OPNFV_MAP_DEV}"
+ fi
+ # grub-update does not like /dev/nbd*, so use a loop device to work around it
+- sudo losetup "${OPNFV_LOOP_DEV}" "${OPNFV_NBD_DEV}p1"
++ sudo losetup "${OPNFV_LOOP_DEV}" "${OPNFV_MAP_DEV}"
+ mkdir -p "${OPNFV_MNT_DIR}"
+ sudo mount "${OPNFV_LOOP_DEV}" "${OPNFV_MNT_DIR}"
+ sudo mount -t proc proc "${OPNFV_MNT_DIR}/proc"
+@@ -141,6 +145,7 @@ function cleanup_mounts {
+ sudo losetup -d "${OPNFV_LOOP_DEV}"
+ fi
+ if [ -n "${OPNFV_NBD_DEV}" ]; then
++ sudo kpartx -d "${OPNFV_NBD_DEV}" || true
+ sudo qemu-nbd -d "${OPNFV_NBD_DEV}" || true
+ fi
+ }