diff options
27 files changed, 417 insertions, 848 deletions
@@ -2,3 +2,4 @@ host=gerrit.opnfv.org port=29418 project=armband.git +defaultbranch=stable/euphrates @@ -30,7 +30,14 @@ export REVSTATE include armband-fuel-config.mk -all: release +all: upgrade + +# Ignore release tag and upgrade Armband to latest change on <branch>/HEAD +.PHONY: upgrade +upgrade: + @git fetch -u origin ${A_BRANCH}:${A_BRANCH} + @git checkout ${A_BRANCH} + @$(MAKE) -e submodules-clean patches-import # Fetch & update git submodules, checkout remote HEAD .PHONY: submodules-init @@ -46,7 +53,7 @@ submodules-init: .submodules-init # Clean any changes made to submodules, checkout Armband root commit .PHONY: submodules-clean -submodules-clean: .submodules-init +submodules-clean: @git submodule -q foreach ' \ git am -q --abort 2>/dev/null; \ git checkout -q -f ${A_OPNFV_TAG}-root 2>/dev/null; \ @@ -54,7 +61,8 @@ submodules-clean: .submodules-init 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 + @rm -f .submodules-* + @$(MAKE) -e submodules-init # Generate patches from submodules .PHONY: patches-export diff --git a/armband-fuel-config.mk b/armband-fuel-config.mk index 3b2bd7b8..a4a0ad5e 100644 --- a/armband-fuel-config.mk +++ b/armband-fuel-config.mk @@ -12,6 +12,7 @@ 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') +A_BRANCH = $(shell sed -ne 's/defaultbranch=//p' ${ARMBAND_BASE}/.gitreview) F_PATCH_DIR := ${A_FUEL_BASE}/mcp/patches # To enable remote tracking, set the following var to any non-empty string. diff --git a/ci/deploy.sh b/ci/deploy.sh index 3862c137..76c237b3 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -14,7 +14,7 @@ export ARMBAND_BASE export CI_DEBUG cd "${WORKSPACE:-${ARMBAND_BASE}}" -make patches-import +make fuel-patches-import cd upstream/fuel/ci ./deploy.sh "$@" diff --git a/docs/release/installation/installation.instruction.rst b/docs/release/installation/installation.instruction.rst index 502c7509..af00d46b 100644 --- a/docs/release/installation/installation.instruction.rst +++ b/docs/release/installation/installation.instruction.rst @@ -132,14 +132,14 @@ installation of Euphrates using Fuel: **NOTE:** For aarch64 deployments an UEFI compatible firmware with PXE support is needed (e.g. EDK2). - =============================== Help with Hardware Requirements =============================== Calculate hardware requirements: -For information on compatible hardware types available for use, please see `Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/software/hardware-compatibility/>`_. +For information on compatible hardware types available for use, +please see `Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/software/hardware-compatibility/>`_ When choosing the hardware on which you will deploy your OpenStack environment, you should think about: @@ -183,7 +183,49 @@ OPNFV Software Prerequisites The Jumpserver node should be pre-provisioned with an operating system, according to the Pharos specification. Relevant network bridges should -also be pre-configured (e.g. admin, management, public). +also be pre-configured (e.g. admin_br, mgmt_br, public_br). + + - The admin bridge (admin_br) is mandatory for the baremetal nodes PXE booting during fuel installation. + - The management bridge (mgmt_br) is required for testing suites (e.g. functest/yardstick), it is + suggested to pre-configure it for debugging purposes. + - The public bridge (public_br) is also nice to have for debugging purposes, but not mandatory. + +The user running the deploy script on the Jumpserver should belong to "sudo" and "libvirt" groups, +and have passwordless sudo access. + +The following example adds the groups to the user "jenkins" + +.. code-block:: bash + + $ sudo usermod -aG sudo jenkins + $ sudo usermod -aG libvirt jenkins + $ reboot + $ groups + jenkins sudo libvirt + + $ sudo visudo + ... + %jenkins ALL=(ALL) NOPASSWD:ALL + +For an AArch64 Jumpserver, the "libvirt" minimum required version is 3.x, 3.5 or newer highly recommended. +While not mandatory, upgrading the kernel and QEMU on the Jumpserver is also highly recommended +(especially on AArch64 Jumpservers). + +For CentOS 7.4 (AArch64), distro provided packages are already new enough. +For Ubuntu 16.04 (arm64), distro packages are too old and 3rd party repositories should be used. +For convenience, Armband provides a DEB repository holding all the required packages. + +To add and enable the Armband repository on an Ubuntu 16.04 system, +create a new sources list file `/apt/sources.list.d/armband.list` with the following contents: + +.. code-block:: bash + + $ cat /etc/apt/sources.list.d/armband.list + //for OpenStack ocata release + deb http://linux.enea.com/mcp-repos/ocata/xenial ocata main + deb http://linux.enea.com/apt-mk/xenial nightly ocata + + $ apt-get update Fuel@OPNFV has been validated by CI using the following distributions installed on the Jumpserver: @@ -191,10 +233,21 @@ installed on the Jumpserver: - CentOS 7 (recommended by Pharos specification); - Ubuntu Xenial; -**NOTE:** The install script expects 'libvirt' to be installed and running -on the Jumpserver. In case the packages are missing, the script will install -them; but depending on the OS distribution, the user might have to start the -'libvirtd' service manually. +**NOTE**: The install script expects 'libvirt' to be already running on the Jumpserver.In case libvirt +packages are missing, the script will install them; but depending on the OS distribution, the user +might have to start the 'libvirtd' service manually, then run the deploy script again. Therefore, it +is recommened to install libvirt-bin explicitly on the Jumpserver before the deployment. + +**NOTE**: It is also recommened to install the newer kernel on the Jumpserver before the deployment. + +**NOTE**: The install script will automatically install the rest of required distro package +dependencies on the Jumpserver, unless explicitly asked not to (via -P deploy arg). This includes +Python, QEMU, libvirt etc. + +.. code-block:: bash + + $ apt-get install linux-image-generic-hwe-16.04-edge libvirt-bin + ========================================== OPNFV Software Installation and Deployment @@ -209,9 +262,9 @@ automatic based on deployment scenario. The reclass model covers: - Infrastucture node definition: Salt Master node (cfg01) and MaaS node (mas01) - - Openstack node defition: Controler nodes (ctl01, ctl02, ctl03) and Compute nodes (cmp001, cmp002) + - OpenStack node definition: Controller nodes (ctl01, ctl02, ctl03) and Compute nodes (cmp001, cmp002) - Infrastructure components to install (software packages, services etc.) - - Openstack components and services (rabbitmq, galera etc.), as well as all configuration for them + - OpenStack components and services (rabbitmq, galera etc.), as well as all configuration for them Automatic Installation of a Virtual POD @@ -220,9 +273,9 @@ Automatic Installation of a Virtual POD For virtual deploys all the targets are VMs on the Jumpserver. The deploy script will: - Create a Salt Master VM on the Jumpserver which will drive the installation - - Create the bridges for networking with virsh (only if a real bridge does not already exists for a given network) - - Install Openstack on the targets - - Leverage Salt to install & configure Openstack services + - Create the bridges for networking with virsh (only if a real bridge does not already exist for a given network) + - Install OpenStack on the targets + - Leverage Salt to install & configure OpenStack services .. figure:: img/fuel_virtual.png :align: center @@ -245,18 +298,18 @@ For virtual deploys all the targets are VMs on the Jumpserver. The deploy script In this figure there are examples of two virtual deploys: - Jumphost 1 has only virsh bridges, created by the deploy script - - Jumphost 2 has a mix of linux and virsh briges; when linux bridge exist for a specified network, + - Jumphost 2 has a mix of Linux and virsh bridges; When Linux bridge exists for a specified network, the deploy script will skip creating a virsh bridge for it -**Note**: A virtual network "mcpcontrol" is always created. For virtual deploys, "mcpcontrol" is also used -for Admin, leaving the PXE/Admin bridge unused. +**Note**: A virtual network "mcpcontrol" is always created. For virtual deploys, "mcpcontrol" is also + used for Admin, leaving the PXE/Admin bridge unused. Automatic Installation of a Baremetal POD ========================================= The baremetal installation process can be done by editing the information about -hardware and enviroment in the reclass files, or by using a Pod Descriptor File (PDF). +hardware and environment in the reclass files, or by using a Pod Descriptor File (PDF). This file contains all the information about the hardware and network of the deployment the will be fed to the reclass model during deployment. @@ -264,10 +317,10 @@ The installation is done automatically with the deploy script, which will: - Create a Salt Master VM on the Jumpserver which will drive the installation - Create a MaaS Node VM on the Jumpserver which will provision the targets - - Install Openstack on the targets + - Install OpenStack on the targets - Leverage MaaS to provision baremetal nodes with the operating system - - Leverage Salt to configure the operatign system on the baremetal nodes - - Leverage Salt to install & configure Openstack services + - Leverage Salt to configure the operating system on the baremetal nodes + - Leverage Salt to install & configure OpenStack services .. figure:: img/fuel_baremetal.png :align: center @@ -297,11 +350,12 @@ The installation is done automatically with the deploy script, which will: | Tenant VM | VM running in the cloud | +-----------------------+---------------------------------------------------------+ -In the baremetal deploy all bridges but "mcpcontrol" are linux bridges. For the Jumpserver, if they are already created -they will be used; otherwise they will be created. For the targets, the bridges are created by the deploy script. +In the baremetal deploy all bridges but "mcpcontrol" are Linux bridges. For the Jumpserver, it is +required to pre-configure at least the admin_br bridge for the PXE/Admin. +For the targets, the bridges are created by the deploy script. -**Note**: A virtual network "mcpcontrol" is always created. For baremetal deploys, PXE bridge is used for -baremetal node provisioning, while "mcpcontrol" is used to provision the infrastructure VMs only. +**Note**: A virtual network "mcpcontrol" is always created. For baremetal deploys, PXE bridge is used +for baremetal node provisioning, while "mcpcontrol" is used to provision the infrastructure VMs only. Steps to Start the Automatic Deploy @@ -333,13 +387,22 @@ These steps are common both for virtual and baremetal deploys. #. Start the deploy script + Besides the basic options, there are other recommended deploy arguments: + + - use **-D** option to enable the debug info + - use **-S** option to point to a tmp dir where the disk images are saved. The images will be + re-used between deploys + - use **|& tee** to save the deploy log to a file + .. code-block:: bash $ ci/deploy.sh -l <lab_name> \ -p <pod_name> \ -b <URI to configuration repo containing the PDF file> \ -s <scenario> \ - -B <list of admin, management, private and public bridges> + -B <list of admin, management, private and public bridges> \ + -D \ + -S <Storage directory for disk images> |& tee deploy.log Examples -------- @@ -356,7 +419,9 @@ Examples $ ci/deploy.sh -b file:///home/jenkins/tmpdir/securedlab \ -l ericsson \ -p virtual_kvm \ - -s os-nosdn-nofeature-noha + -s os-nosdn-nofeature-noha \ + -D \ + -S /home/jenkins/tmpdir |& tee deploy.log Once the deployment is complete, the OpenStack Dashboard, Horizon is available at http://<controller VIP>:8078, e.g. http://10.16.0.101:8078. @@ -373,6 +438,8 @@ Examples -p pod2 \ -s os-nosdn-nofeature-ha \ -B pxebr,br-ctl + -D \ + -S /home/jenkins/tmpdir |& tee deploy.log .. figure:: img/lf_pod2.png :align: center @@ -387,11 +454,12 @@ Examples .. code-block:: bash - $ ci/deploy.sh -b file:///home/jenkins/tmpdir/securedlab \ - -l arm \ - -p pod5 \ - -s os-nosdn-nofeature-ha \ - -B admin7_br0,mgmt7_br0,,public7_br0 + $ ci/deploy.sh -b file:///home/jenkins/tmpdir/securedlab \ + -l arm \ + -p pod5 \ + -s os-nosdn-nofeature-ha \ + -D \ + -S /home/jenkins/tmpdir |& tee deploy.log .. figure:: img/arm_pod5.png :align: center @@ -399,10 +467,6 @@ Examples Fuel@OPNFV ARM POD5 Network Layout - Once the deployment is complete, the SaltStack Deployment Documentation is - available at http://<Proxy VIP>:8090, e.g. http://10.0.8.103:8090. - - Pod Descriptor Files ==================== diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst index 6e1b5342..0052ab63 100644 --- a/docs/release/release-notes/release-notes.rst +++ b/docs/release/release-notes/release-notes.rst @@ -61,13 +61,13 @@ Release Data | **Project** | fuel/armband | | | | +--------------------------------------+--------------------------------------+ -| **Repo/tag** | opnfv-5.0.2 | +| **Repo/tag** | opnfv-5.1.0 | | | | +--------------------------------------+--------------------------------------+ -| **Release designation** | Euphrates 5.0 | +| **Release designation** | Euphrates 5.1 | | | | +--------------------------------------+--------------------------------------+ -| **Release date** | October 20 2017 | +| **Release date** | December 15 2017 | | | | +--------------------------------------+--------------------------------------+ | **Purpose of the delivery** | Euphrates alignment to Released | @@ -84,7 +84,7 @@ Version Change Module Version Changes ---------------------- -This is the Euphrates 5.0 release. +This is the Euphrates 5.1 release. It is based on following upstream versions: - MCP 1.0 Base Release @@ -95,13 +95,15 @@ It is based on following upstream versions: Document Changes ---------------- -This is the Euphrates 5.0 release. +This is the Euphrates 5.1 release. It comes with the following documentation: -- Installation instructions +- `Installation instructions <http://docs.opnfv.org/en/stable-euphrates/submodules/armband/docs/release/installation/installation.instruction.html>`_ - Release notes (This document) +- `User guide <http://docs.opnfv.org/en/stable-euphrates/submodules/fuel/docs/release/userguide/userguide.html>`_ + Reason for Version ================== @@ -109,14 +111,14 @@ Feature Additions ----------------- **JIRA TICKETS:** -`Euphrates 5.0 new features <https://jira.opnfv.org/issues/?filter=12029>`_ +`Euphrates 5.1 new features <https://jira.opnfv.org/issues/?filter=12114>`_ Bug Corrections --------------- **JIRA TICKETS:** -`Euphrates 5.0 bug fixes <https://jira.opnfv.org/issues/?filter=12027>`_ +`Euphrates 5.1 bug fixes <https://jira.opnfv.org/issues/?filter=12115>`_ (Also See respective Integrated feature project's bug tracking) @@ -133,10 +135,13 @@ Software Deliverables Documentation Deliverables -------------------------- -- Installation instructions +- `Installation instructions <http://docs.opnfv.org/en/stable-euphrates/submodules/armband/docs/release/installation/installation.instruction.html>`_ - Release notes (This document) +- `User guide <http://docs.opnfv.org/en/stable-euphrates/submodules/fuel/docs/release/userguide/userguide.html>`_ + + ========================================= Known Limitations, Issues and Workarounds ========================================= @@ -158,7 +163,7 @@ Known Issues **JIRA TICKETS:** -`Known issues <https://jira.opnfv.org/issues/?filter=12028>`_ +`Known issues <https://jira.opnfv.org/issues/?filter=12116>`_ (Also See respective Integrated feature project's bug tracking) @@ -174,13 +179,13 @@ Workarounds ============ Test Results ============ -The Euphrates 5.0 release with the Fuel deployment tool has undergone QA test +The Euphrates 5.1 release with the Fuel deployment tool has undergone QA test runs, see separate test results. ========== References ========== -For more information on the OPNFV Euphrates 5.0 release, please see: +For more information on the OPNFV Euphrates 5.1 release, please see: OPNFV ===== diff --git a/docs/release/userguide/img/reclass_doc.png b/docs/release/userguide/img/reclass_doc.png Binary files differnew file mode 100644 index 00000000..374f92a6 --- /dev/null +++ b/docs/release/userguide/img/reclass_doc.png diff --git a/docs/release/userguide/userguide.rst b/docs/release/userguide/userguide.rst index f00e6635..2b46a84a 100644 --- a/docs/release/userguide/userguide.rst +++ b/docs/release/userguide/userguide.rst @@ -254,6 +254,63 @@ For Virtual deploys, the most commonly used IPs are in the table below. +-----------+--------------+---------------+ +============================= +Reclass model viewer tutorial +============================= + + +In order to get a better understanding on the reclass model Fuel uses, the `reclass-doc +<https://github.com/jirihybek/reclass-doc>`_ can be used to visualise the reclass model. +A simplified installation can be done with the use of a docker ubuntu container. This +approach will avoid installing packages on the host, which might collide with other packages. +After the installation is done, a webbrowser on the host can be used to view the results. + +**NOTE**: The host can be any device with Docker package already installed. + The user which runs the docker needs to have root priviledges. + + +**Instructions** + + +#. Create a new directory at any location + + .. code-block:: bash + + $ mkdir -p modeler + + +#. Place fuel repo in the above directory + + .. code-block:: bash + + $ cd modeler + $ git clone https://gerrit.opnfv.org/gerrit/fuel && cd fuel + + +#. Create a container and mount the above host directory + + .. code-block:: bash + + $ docker run --privileged -it -v <absolute_path>/modeler:/host ubuntu bash + + +#. Install all the required packages inside the container. + + .. code-block:: bash + + $ apt-get update + $ apt-get install -y npm nodejs + $ npm install -g reclass-doc + $ cd /host/fuel/mcp/reclass + $ ln -s /usr/bin/nodejs /usr/bin/node + $ reclass-doc --output /host /host/fuel/mcp/reclass + + +#. View the results from the host by using a browser. The file to open should be now at modeler/index.html + + .. figure:: img/reclass_doc.png + + .. _references: ========== diff --git a/patches/opnfv-fuel/0001-baremetal-Add-Armband-Openstack-repos-to-kvm-cmp.patch b/patches/opnfv-fuel/0001-baremetal-Add-Armband-Openstack-repos-to-kvm-cmp.patch deleted file mode 100644 index 85751ce2..00000000 --- a/patches/opnfv-fuel/0001-baremetal-Add-Armband-Openstack-repos-to-kvm-cmp.patch +++ /dev/null @@ -1,49 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: 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: Sun, 26 Nov 2017 17:25:08 +0100 -Subject: [PATCH] baremetal: Add Armband Openstack repos to kvm, cmp - -Armband provides 2 sets of APT repositories: -- linux.system.repo.mcp.armband.openstack; -- linux.system.repo.mcp.armband.extra (currently empty); - -These repos are pre-installed for all infrastructure VMs, so we only -handle them via Salt for baremetal kvm* and cmp* nodes. - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml | 1 + - .../classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml -index ce7fc85..6491798 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml -@@ -7,6 +7,7 @@ - ############################################################################## - --- - classes: -+ - system.linux.system.repo.mcp.armband.openstack - - system.linux.system.repo.mcp.openstack - - system.linux.system.repo.mcp.extra - - system.linux.system.repo.glusterfs -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml -index e07e611..278e55b 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml -@@ -7,6 +7,7 @@ - ############################################################################## - --- - classes: -+ - system.linux.system.repo.mcp.armband.openstack - - system.linux.system.repo.mcp.extra - - system.linux.system.repo.glusterfs - - system.linux.storage.loopback diff --git a/patches/opnfv-fuel/0002-salt-formulas-Add-enable-armband-formula.patch b/patches/opnfv-fuel/0001-salt-formulas-Add-enable-armband-formula.patch index 290ecbd6..f27ccb24 100644 --- a/patches/opnfv-fuel/0002-salt-formulas-Add-enable-armband-formula.patch +++ b/patches/opnfv-fuel/0001-salt-formulas-Add-enable-armband-formula.patch @@ -15,7 +15,6 @@ Subject: [PATCH] salt-formulas: Add & enable armband formula - prereq: fix missing link for vgabios binary blob; - nova patch: Support qemu >= 2.10 (backport from [1]); - nova patch: Add video type virtio for AArch64 (backport from [2]); -- nova patch: libvirt driver: Add ttyAMA0 by default on AArch64; - nova patch: libvirt driver: AArch64: ACPI depends on AAVMF; - nova conf: cpu_model=cortex-a57 (only for virtual deploys); - nova conf: virt_type=qemu (only for virtual deploys); @@ -28,8 +27,8 @@ Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com> Signed-off-by: Charalampos Kominos <Charalampos.Kominos@enea.com> Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- - mcp/config/states/openstack | 2 + mcp/config/states/openstack_ha | 1 + + mcp/config/states/openstack_noha | 2 + mcp/config/states/virtual_control_plane | 1 + .../armband/files/nova-libvirt-aarch64-rollup.diff | 317 +++++++++++++++++++++ mcp/salt-formulas/armband/init.sls | 7 + @@ -45,40 +44,40 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> create mode 100644 mcp/salt-formulas/armband/qemu_efi.sls create mode 100644 mcp/salt-formulas/armband/vgabios.sls -diff --git a/mcp/config/states/openstack b/mcp/config/states/openstack -index 369e165..d2a0b63 100755 ---- a/mcp/config/states/openstack -+++ b/mcp/config/states/openstack -@@ -47,3 +47,5 @@ salt -I 'ceilometer:server' state.sls ceilometer - salt -I 'ceilometer:agent' state.sls ceilometer - - salt -I 'horizon:server' state.sls horizon -+ -+salt -I 'nova:compute' state.sls armband || true diff --git a/mcp/config/states/openstack_ha b/mcp/config/states/openstack_ha -index fbddc6e..6bad8da 100755 +index 02b7009..9ec1409 100755 --- a/mcp/config/states/openstack_ha +++ b/mcp/config/states/openstack_ha @@ -52,6 +52,7 @@ salt -I 'neutron:server' state.sls neutron -b 1 salt -I 'neutron:gateway' state.sls neutron.gateway salt -I 'nova:compute' state.sls nova -+salt -I 'nova:compute' state.sls armband || true ++wait_for 5.0 "salt -I 'nova:compute' state.sls armband" salt -I 'mongodb:server' state.sls mongodb || true wait_for 90 "salt -C 'I@mongodb:server and *01*' cmd.run 'mongo localhost:27017/admin'" +diff --git a/mcp/config/states/openstack_noha b/mcp/config/states/openstack_noha +index cc46ac1..e70b6d3 100755 +--- a/mcp/config/states/openstack_noha ++++ b/mcp/config/states/openstack_noha +@@ -50,3 +50,5 @@ salt -I 'ceilometer:server' state.sls ceilometer + salt -I 'ceilometer:agent' state.sls ceilometer + + salt -I 'horizon:server' state.sls horizon ++ ++salt -I 'nova:compute' state.sls armband diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane -index c355126..99fb517 100755 +index f97e9b7..f0da66f 100755 --- a/mcp/config/states/virtual_control_plane +++ b/mcp/config/states/virtual_control_plane -@@ -46,6 +46,7 @@ wait_for 90 "! salt -C 'kvm* or cmp*' test.ping | " \ - - salt -C '* and not cfg01* and not mas01*' state.apply linux,ntp +@@ -27,6 +27,7 @@ if [ "${ERASE_ENV}" -eq 1 ]; then + fi -+salt -C 'kvm*' state.sls armband || true - wait_for 5 "salt -C 'kvm*' state.sls libvirt" + # KVM libvirt first, VCP deployment ++wait_for 5.0 "salt -C 'kvm*' state.sls armband" + wait_for 5.0 "salt -C 'kvm*' state.sls libvirt" - salt -C '* and not cfg01* and not mas01*' state.apply salt + salt -C 'kvm* or cmp*' state.apply salt diff --git a/mcp/salt-formulas/armband/files/nova-libvirt-aarch64-rollup.diff b/mcp/salt-formulas/armband/files/nova-libvirt-aarch64-rollup.diff new file mode 100644 index 0000000..4d7f04c diff --git a/patches/opnfv-fuel/0003-network-public-Use-arm-virtual2-POD-config.patch b/patches/opnfv-fuel/0002-network-public-Use-arm-virtual2-POD-config.patch index 1dc8f99b..889e3695 100644 --- a/patches/opnfv-fuel/0003-network-public-Use-arm-virtual2-POD-config.patch +++ b/patches/opnfv-fuel/0002-network-public-Use-arm-virtual2-POD-config.patch @@ -35,8 +35,8 @@ range for the public network to not include that address. Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- mcp/config/states/networks | 6 +++--- - .../classes/cluster/virtual-mcp-ocata-common/infra/config.yml | 6 +++--- - .../classes/cluster/virtual-mcp-ocata-common/openstack_init.yml | 2 +- + .../classes/cluster/virtual-mcp-ocata-common-noha/infra/config.yml | 6 +++--- + .../cluster/virtual-mcp-ocata-common-noha/openstack_init.yml | 2 +- mcp/scripts/net_public.xml | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) @@ -62,11 +62,11 @@ index d4735ad..e566903 100755 + openstack subnet create --gateway ${PUBLIC_NET%.*}.254 --no-dhcp \ + --allocation-pool start=${PUBLIC_NET%.*}.130,end=${PUBLIC_NET%.*}.200 \ --network floating_net --subnet-range ${PUBLIC_NET} floating_subnet" -diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml -index 3c3d526..e114ec2 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml -@@ -61,13 +61,13 @@ parameters: +diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/infra/config.yml +index ada2c25..0faf478 100644 +--- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/infra/config.yml ++++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/infra/config.yml +@@ -62,13 +62,13 @@ parameters: params: single_address: 172.16.10.105 tenant_address: 10.1.0.105 @@ -83,10 +83,10 @@ index 3c3d526..e114ec2 100644 tenant_address: 10.1.0.110 - external_address: 10.16.0.110 + external_address: 10.0.9.110 -diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_init.yml -index 81f050f..b304c28 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_init.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_init.yml +diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/openstack_init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/openstack_init.yml +index 7037d64..7892c46 100644 +--- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/openstack_init.yml ++++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/openstack_init.yml @@ -14,7 +14,7 @@ parameters: openstack_region: RegionOne admin_email: root@localhost diff --git a/patches/opnfv-fuel/0004-mcp-salt-formulas-opendaylight-AArch64-leveldb.patch b/patches/opnfv-fuel/0003-mcp-salt-formulas-opendaylight-AArch64-leveldb.patch index af8e35ef..7ceb0a1b 100644 --- a/patches/opnfv-fuel/0004-mcp-salt-formulas-opendaylight-AArch64-leveldb.patch +++ b/patches/opnfv-fuel/0003-mcp-salt-formulas-opendaylight-AArch64-leveldb.patch @@ -33,10 +33,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 5 insertions(+) diff --git a/mcp/salt-formulas/opendaylight/server.sls b/mcp/salt-formulas/opendaylight/server.sls -index 5de4eee..4bf81a9 100644 +index f953cdd..f966208 100644 --- a/mcp/salt-formulas/opendaylight/server.sls +++ b/mcp/salt-formulas/opendaylight/server.sls -@@ -72,4 +72,9 @@ opendaylight: +@@ -91,4 +91,9 @@ opendaylight: - service: opendaylight {%- endif %} diff --git a/patches/opnfv-fuel/0005-maas-Add-curtin_userdata_arm64_generic_xenial.patch b/patches/opnfv-fuel/0004-maas-Add-curtin_userdata_arm64_generic_xenial.patch index 3e17f899..4e080e8f 100644 --- a/patches/opnfv-fuel/0005-maas-Add-curtin_userdata_arm64_generic_xenial.patch +++ b/patches/opnfv-fuel/0004-maas-Add-curtin_userdata_arm64_generic_xenial.patch @@ -11,14 +11,16 @@ Date: Mon, 7 Aug 2017 19:45:01 +0200 Subject: [PATCH] maas: Add curtin_userdata_arm64_generic_xenial Add AArch64 specific configuration. +While at it, preseed Armband Openstack & APT-MK for Ocata, +so we get the updated kernel & other packages from the start. Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- - ...-Add-curtin_userdata_arm64_generic_xenial.patch | 35 ++++++++++++++++++ + ...-Add-curtin_userdata_arm64_generic_xenial.patch | 35 +++++++++++++++++ mcp/patches/patches.list | 1 + - .../baremetal-mcp-ocata-common/infra/maas.yml | 26 +++++++++++++ - .../files/curtin_userdata_arm64_generic_xenial | 43 ++++++++++++++++++++++ - 4 files changed, 105 insertions(+) + .../baremetal-mcp-ocata-common-ha/infra/maas.yml | 44 ++++++++++++++++++++++ + .../files/curtin_userdata_arm64_generic_xenial | 35 +++++++++++++++++ + 4 files changed, 115 insertions(+) create mode 100644 mcp/patches/0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch create mode 100644 mcp/salt-formulas/maas/files/curtin_userdata_arm64_generic_xenial @@ -64,57 +66,75 @@ index 0000000..0368937 + file.managed: + - source: salt://maas/files/pgpass diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list -index 6358109..4f6cc56 100644 +index 62b0f60..b7a8953 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -18,3 +18,4 @@ /usr/share/salt-formulas/reclass: 0011-service.horizon.server.cluster-Default-to-v2-API.patch + /usr/share/salt-formulas/env: 0011-system.repo-Debian-Add-keyserver-proxy-support.patch /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch - /usr/share/salt-formulas/env: 0013-maas-region-Allow-subnets-without-fabrics.patch +/usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml -index e8c2965..b15f9cb 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml -@@ -110,6 +110,32 @@ parameters: - architecture: ${_param:opnfv_maas_node05_architecture} - distro_series: xenial - hwe_kernel: hwe-16.04 -+ cluster: -+ enabled: true -+ region: -+ port: 80 -+ host: localhost -+ saltstack_repo_key_arm64: | -+ -----BEGIN PGP PUBLIC KEY BLOCK----- -+ Version: GnuPG v1 +diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/maas.yml +index 1136908..7fd1623 100644 +--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/maas.yml ++++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/maas.yml +@@ -40,6 +40,50 @@ parameters: + enable_third_party_drivers: true + network_discovery: 'enabled' + default_min_hwe_kernel: ${_param:hwe_kernel} ++ package_repositories: ++ armband_openstack: ++ name: armband_openstack ++ enabled: '1' ++ url: 'http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}' ++ distributions: '${_param:openstack_version}' ++ components: 'main' ++ arches: 'arm64' ++ key: &armband_key | ++ -----BEGIN PGP PUBLIC KEY BLOCK----- ++ Version: GnuPG v2.0.14 (GNU/Linux) + -+ mQENBFagAroBCADWboNIjuF6lB1mWv2+EbvqY3lKl5mLKhr2DnSUkKeHUPBv8gNM -+ qK8Q00AMIyPiyEhgjA+dWizZ+5aBgxoiY7oMeLJ2Xym36U/8SYq2BWd3SGCbMNoz -+ SJDxDUSM/HFVs6atF1M3DY9oN65hSVnu4uy5Tu6asf6k4rhAyk0z4+pRcPBCu2vq -+ mnGi3COM/+9PShrEKeVOx5W2vRJywUFuq8EDvQnRoJ0GvM28JiJIanw17YwIPxhg -+ BKZVpZjan5X+ihVMXwA2h/G/FS5Omhd50RqV6LWSYs94VJJgYqHx8UMm7izcxI+P -+ ct3IcbD195bPbJ+SbuiFe45ZLsdY1MyGiU2BABEBAAG0K0VuZWEgQXJtYmFuZCBE -+ ZXZvcHMgVGVhbSA8YXJtYmFuZEBlbmVhLmNvbT6JAT4EEwECACgFAlagAroCGwMF -+ CQPCZwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEN6rkLp5irHRsG8H/2P2 -+ hO6jFHPRD1u8j9ufO9AxoInaEG9GeRjuvMc1tCUzovXvTs106TZ0as6MbAJ1S6u5 -+ E8UyQ1+VGepvdIJPXx3PCxLmUt6WIqmdOdqFrxIclohig/kardi3NfX1MBvlEV/c -+ 7Q51H43hrlMqMpqgY1Bm+53PLC4ujjlDJBtJOEU9dki319bUmng+gO9BAljDJFXv -+ JqY6+P/er7IgCbRXUXYfyJzgjx9JwlKbmdQ8QnCrZjF/VHIW40/mu5IIJuFvuCti -+ tcog+SNSlDmCOS+wE8CCojeuJqupIOcz9zypVGzeus/N5Q5EEFe7GYWYS/5NKUkE -+ 1TuuFeZKu5NJC5rkwIU= -+ =7p60 -+ -----END PGP PUBLIC KEY BLOCK----- -+ saltstack_repo_xenial_arm64: "http://linux.enea.com/saltstack/apt/ubuntu/16.04/arm64/2016.11 xenial main" - linux: - network: - interface: ++ mQENBFagAroBCADWboNIjuF6lB1mWv2+EbvqY3lKl5mLKhr2DnSUkKeHUPBv8gNM ++ qK8Q00AMIyPiyEhgjA+dWizZ+5aBgxoiY7oMeLJ2Xym36U/8SYq2BWd3SGCbMNoz ++ SJDxDUSM/HFVs6atF1M3DY9oN65hSVnu4uy5Tu6asf6k4rhAyk0z4+pRcPBCu2vq ++ mnGi3COM/+9PShrEKeVOx5W2vRJywUFuq8EDvQnRoJ0GvM28JiJIanw17YwIPxhg ++ BKZVpZjan5X+ihVMXwA2h/G/FS5Omhd50RqV6LWSYs94VJJgYqHx8UMm7izcxI+P ++ ct3IcbD195bPbJ+SbuiFe45ZLsdY1MyGiU2BABEBAAG0K0VuZWEgQXJtYmFuZCBE ++ ZXZvcHMgVGVhbSA8YXJtYmFuZEBlbmVhLmNvbT6JATgEEwECACICGwMGCwkIBwMC ++ BhUIAgkKCwQWAgMBAh4BAheABQJaY3bYAAoJEN6rkLp5irHRoQMH/0PYl0A/6eWw ++ nQ/szhEFrr76Ln6wA4vEO+PiuWj9kTkZM2NaCnkisrIuHSPIVvOLfFmztbE6sKGe ++ t+a2b7Jqw48DZ/gq508aZE4Q307ookxdCOrzIu/796hFO34yXg3sqZoJh3VmKIjY ++ 4DL8yG1iAiQ5vOw3IFWQnATwIZUgaCcjmE7HGap+9ePuJfFuQ8mIG5cy28t8qocx ++ AB/B2tucfBMwomYxKqgbLI5AG7iSt58ajvrrNa9f8IX7Ihj/jiuXhUwX+geEp98K ++ IWVI1ftEthZvfBpZW4BS98J4z//dEPi31L4jb9RQXq3afF2RpXchDeUN85bW45nu ++ W/9PMAlgE/U= ++ =m+zE ++ -----END PGP PUBLIC KEY BLOCK----- ++ armband_mk_openstack: ++ name: armband_mk_openstack ++ enabled: '1' ++ url: 'http://linux.enea.com/apt-mk/${_param:linux_system_codename}/' ++ distributions: 'nightly' ++ components: '${_param:openstack_version}' ++ arches: 'arm64' ++ key: *armband_key ++ saltstack_armband: ++ name: saltstack_armband ++ enabled: '1' ++ url: 'http://linux.enea.com/saltstack/apt/ubuntu/16.04/arm64/2016.11' ++ distributions: '${_param:linux_system_codename}' ++ components: 'main' ++ arches: 'arm64' ++ key: *armband_key + subnets: + opnfv_maas_pxe: + name: ${_param:opnfv_infra_maas_pxe_network_address}/24 diff --git a/mcp/salt-formulas/maas/files/curtin_userdata_arm64_generic_xenial b/mcp/salt-formulas/maas/files/curtin_userdata_arm64_generic_xenial new file mode 100644 -index 0000000..96fd76f +index 0000000..15d10a4 --- /dev/null +++ b/mcp/salt-formulas/maas/files/curtin_userdata_arm64_generic_xenial -@@ -0,0 +1,43 @@ +@@ -0,0 +1,35 @@ +{%- from "maas/map.jinja" import cluster with context %} +{% raw %} +#cloud-config @@ -134,14 +154,6 @@ index 0000000..96fd76f +{{endif}} +late_commands: + maas: [wget, '--no-proxy', {{node_disable_pxe_url|escape.json}}, '--post-data', {{node_disable_pxe_data|escape.json}}, '-O', '/dev/null'] -+{% endraw %} -+{%- if not cluster.saltstack_repo_key_arm64 == 'none' %} -+{% set salt_repo_key = salt['hashutil.base64_b64encode'](cluster.saltstack_repo_key_arm64) %} -+ apt_00_set_gpg: ["curtin", "in-target", "--", "sh", "-c", "echo '{{salt_repo_key}}' | base64 -d | apt-key add -"] -+{%- endif %} -+ apt_01_set_repo: ["curtin", "in-target", "--", "sh", "-c", "echo 'deb [arch=arm64] {{ cluster.saltstack_repo_xenial_arm64 }}' >> /etc/apt/sources.list"] -+{% raw %} -+ apt_03_update: ["curtin", "in-target", "--", "apt-get", "update"] + salt_01_install: ["curtin", "in-target", "--", "apt-get", "-y", "install", "salt-minion"] +{% endraw %} + salt_02_hostname_set: ["curtin", "in-target", "--", "echo", "{% raw %}{{node.hostname}}{% endraw %}.{{pillar.linux.system.domain}}"] diff --git a/patches/opnfv-fuel/0006-maas-boot-resources-Add-arm64-architecture.patch b/patches/opnfv-fuel/0005-maas-boot-resources-Add-arm64-architecture.patch index 91e13434..e11dbee7 100644 --- a/patches/opnfv-fuel/0006-maas-boot-resources-Add-arm64-architecture.patch +++ b/patches/opnfv-fuel/0005-maas-boot-resources-Add-arm64-architecture.patch @@ -16,19 +16,19 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mcp/patches/0003-maas-region-force-artifact-download.patch b/mcp/patches/0003-maas-region-force-artifact-download.patch -index ecda80a..a8d27d7 100644 +index 6e6c18f..e75fcaa 100644 --- a/mcp/patches/0003-maas-region-force-artifact-download.patch +++ b/mcp/patches/0003-maas-region-force-artifact-download.patch @@ -50,7 +50,7 @@ diff --git a/maas/files/maas-artifact-sync.sh b/maas/files/maas-artifact-sync.sh new file mode 100644 --- /dev/null +++ b/maas/files/maas-artifact-sync.sh --@@ -0,0 +1,21 @@ -+@@ -0,0 +1,26 @@ +-@@ -0,0 +1,20 @@ ++@@ -0,0 +1,25 @@ +{%- from "maas/map.jinja" import region with context %} +#!/bin/bash +function wait_for { -@@ -72,3 +72,8 @@ new file mode 100644 +@@ -71,3 +71,8 @@ new file mode 100644 +wait_for 90 "! maas opnfv boot-resources is-importing | grep -q 'true'" +maas opnfv rack-controllers import-boot-images || exit 3 +wait_for 30 "test -d /var/lib/maas/boot-resources/current/ubuntu/amd64" diff --git a/patches/opnfv-fuel/0007-libvirt-Use-libvirt-unix_sock_group.patch b/patches/opnfv-fuel/0006-libvirt-Use-libvirt-unix_sock_group.patch index 581cd71f..bad8555d 100644 --- a/patches/opnfv-fuel/0007-libvirt-Use-libvirt-unix_sock_group.patch +++ b/patches/opnfv-fuel/0006-libvirt-Use-libvirt-unix_sock_group.patch @@ -22,7 +22,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> diff --git a/mcp/patches/0102-libvirt-unix_sock_group-s-libvirtd-libvirt.patch b/mcp/patches/0102-libvirt-unix_sock_group-s-libvirtd-libvirt.patch new file mode 100644 -index 0000000..003b249 +index 0000000..34d7cb4 --- /dev/null +++ b/mcp/patches/0102-libvirt-unix_sock_group-s-libvirtd-libvirt.patch @@ -0,0 +1,21 @@ @@ -42,17 +42,17 @@ index 0000000..003b249 + # without becoming root. + # + # This is restricted to 'root' by default. -+-unix_sock_group = "libvirtd" -++unix_sock_group = "libvirt" ++-unix_sock_group = "{{ server.get('unix_sock_group', 'libvirtd') }}" +++unix_sock_group = "{{ server.get('unix_sock_group', 'libvirt') }}" + + # Set the UNIX socket permissions for the R/O socket. This is used + # for monitoring VM status only diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list -index 4f6cc56..688a9af 100644 +index b7a8953..9cc1c7b 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -19,3 +19,4 @@ + /usr/share/salt-formulas/env: 0011-system.repo-Debian-Add-keyserver-proxy-support.patch /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch - /usr/share/salt-formulas/env: 0013-maas-region-Allow-subnets-without-fabrics.patch /usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch +/usr/share/salt-formulas/env: 0102-libvirt-unix_sock_group-s-libvirtd-libvirt.patch diff --git a/patches/opnfv-fuel/0008-mcp-salt-formulas-armband-Extend-libvirt_domain.patch b/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch index 1ea8f5af..f80098ff 100644 --- a/patches/opnfv-fuel/0008-mcp-salt-formulas-armband-Extend-libvirt_domain.patch +++ b/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch @@ -33,25 +33,25 @@ to pick up the changes, so we'll run it before rebooting kvm nodes. Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- - mcp/config/states/virtual_control_plane | 1 + + mcp/config/states/baremetal_init | 1 + .../armband/files/salt-minion-aarch64-rollup.diff | 101 +++++++++++++++++++++ mcp/salt-formulas/armband/salt_minion.sls | 7 ++ 3 files changed, 109 insertions(+) create mode 100644 mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff create mode 100644 mcp/salt-formulas/armband/salt_minion.sls -diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane -index 99fb517..88a4488 100755 ---- a/mcp/config/states/virtual_control_plane -+++ b/mcp/config/states/virtual_control_plane -@@ -40,6 +40,7 @@ salt -C 'kvm*' pkg.install bridge-utils - salt -C 'kvm*' state.apply linux.network - salt -C 'cmp*' state.apply linux.system - salt -C 'cmp*' state.apply linux.network || true -+salt -C 'kvm*' state.apply armband.salt_minion || true +diff --git a/mcp/config/states/baremetal_init b/mcp/config/states/baremetal_init +index 5a8b6c7..15fc572 100755 +--- a/mcp/config/states/baremetal_init ++++ b/mcp/config/states/baremetal_init +@@ -32,6 +32,7 @@ salt -C 'cmp*' state.apply linux.network || true + salt -C 'cmp*' file.write /etc/dhcp/dhclient-enter-hooks.d/no-default-route \ + args='unset new_routers' + ++salt -C 'kvm*' state.apply armband.salt_minion salt -C 'kvm* or cmp*' system.reboot - wait_for 90 "! salt -C 'kvm* or cmp*' test.ping | " \ - "tee /dev/stderr | grep -Fq 'Not connected'" + wait_for 90.0 "salt -C 'kvm* or cmp*' test.ping" + diff --git a/mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff b/mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff new file mode 100644 index 0000000..9e74c24 diff --git a/patches/opnfv-fuel/0009-virtng.py-virt.sls-Extend-libvirt_domain.patch b/patches/opnfv-fuel/0008-virtng.py-virt.sls-Extend-libvirt_domain.patch index 562dc5d4..2ebc5a16 100644 --- a/patches/opnfv-fuel/0009-virtng.py-virt.sls-Extend-libvirt_domain.patch +++ b/patches/opnfv-fuel/0008-virtng.py-virt.sls-Extend-libvirt_domain.patch @@ -26,7 +26,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> .../0103-virtng-module-Extend-libvirt_domain.patch | 54 ++++++++++++++++++++++ ...4-salt-control-virt-Extend-libvirt_domain.patch | 51 ++++++++++++++++++++ mcp/patches/patches.list | 2 + - .../baremetal-mcp-ocata-common/infra/kvm.yml | 15 ++++++ + .../baremetal-mcp-ocata-common-ha/infra/kvm.yml | 15 ++++++ .../baremetal-mcp-ocata-odl-ha/infra/kvm.yml | 3 ++ 5 files changed, 125 insertions(+) create mode 100644 mcp/patches/0103-virtng-module-Extend-libvirt_domain.patch @@ -150,20 +150,20 @@ index 0000000..a9fe11b + + #salt_control_seed_{{ cluster_name }}_{{ node_name }}: diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list -index 688a9af..e618d57 100644 +index 9cc1c7b..bf55868 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -20,3 +20,5 @@ - /usr/share/salt-formulas/env: 0013-maas-region-Allow-subnets-without-fabrics.patch + /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch /usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch /usr/share/salt-formulas/env: 0102-libvirt-unix_sock_group-s-libvirtd-libvirt.patch +/usr/share/salt-formulas/env: 0103-virtng-module-Extend-libvirt_domain.patch +/usr/share/salt-formulas/env: 0104-salt-control-virt-Extend-libvirt_domain.patch -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml -index 6491798..bf58f74 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml -@@ -49,21 +49,33 @@ parameters: +diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm.yml +index 9f6c1ea..1215d92 100644 +--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm.yml ++++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm.yml +@@ -46,21 +46,33 @@ parameters: openstack.control: cpu: 4 ram: 12288 @@ -197,7 +197,7 @@ index 6491798..bf58f74 100644 disk_profile: xxlarge net_profile: default # stacklight.log: -@@ -84,6 +96,9 @@ parameters: +@@ -81,6 +93,9 @@ parameters: openstack.proxy: cpu: 2 ram: 2048 @@ -208,7 +208,7 @@ index 6491798..bf58f74 100644 net_profile: default_ext cluster: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/kvm.yml -index d7bbadd..f8b9662 100644 +index 400cba9..8eb29e8 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/kvm.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/kvm.yml @@ -17,6 +17,9 @@ parameters: diff --git a/patches/opnfv-fuel/0009-seedng-module-Add-AArch64-repo.patch b/patches/opnfv-fuel/0009-seedng-module-Add-AArch64-repo.patch new file mode 100644 index 00000000..121d7bae --- /dev/null +++ b/patches/opnfv-fuel/0009-seedng-module-Add-AArch64-repo.patch @@ -0,0 +1,59 @@ +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +: 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: Mon, 21 Aug 2017 20:42:00 +0200 +Subject: [PATCH] seedng: module: Add AArch64 repo + +salt custom py module seedng.py should use custom repo arg +"-R linux.enea.com/saltstack" on AArch64 nodes. + +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +--- + .../0105-seedng-module-Add-AArch64-repo.patch | 22 ++++++++++++++++++++++ + mcp/patches/patches.list | 1 + + 2 files changed, 23 insertions(+) + create mode 100644 mcp/patches/0105-seedng-module-Add-AArch64-repo.patch + +diff --git a/mcp/patches/0105-seedng-module-Add-AArch64-repo.patch b/mcp/patches/0105-seedng-module-Add-AArch64-repo.patch +new file mode 100644 +index 0000000..d40e63b +--- /dev/null ++++ b/mcp/patches/0105-seedng-module-Add-AArch64-repo.patch +@@ -0,0 +1,22 @@ ++From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ++Date: Mon, 21 Aug 2017 02:03:01 +0200 ++Subject: [PATCH] seedng: module: Add AArch64 repo ++ ++salt custom py module seedng.py should use custom repo arg ++"-R linux.enea.com/saltstack" on AArch64 nodes. ++ ++Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ++--- ++ ++diff --git a/_modules/seedng.py b/_modules/seedng.py ++--- a/_modules/seedng.py +++++ b/_modules/seedng.py ++@@ -257,6 +257,7 @@ ++ or salt.syspaths.BOOTSTRAP) ++ # Exec the chroot command ++- arg = 'stable {0}'.format('.'.join(salt.version.__version__.split('.')[:2])) +++ arg = '-R linux.enea.com/saltstack ' if os.uname()[-1] == 'aarch64' else '' +++ arg += 'stable {0}'.format('.'.join(salt.version.__version__.split('.')[:2])) ++ cmd = 'if type salt-minion; then exit 0; ' ++ cmd += 'else sh {0} -c /tmp {1}; fi'.format( ++ os.path.join(tmppath, 'bootstrap-salt.sh'), arg) +diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list +index bf55868..9c911ba 100644 +--- a/mcp/patches/patches.list ++++ b/mcp/patches/patches.list +@@ -22,3 +22,4 @@ + /usr/share/salt-formulas/env: 0102-libvirt-unix_sock_group-s-libvirtd-libvirt.patch + /usr/share/salt-formulas/env: 0103-virtng-module-Extend-libvirt_domain.patch + /usr/share/salt-formulas/env: 0104-salt-control-virt-Extend-libvirt_domain.patch ++/usr/share/salt-formulas/env: 0105-seedng-module-Add-AArch64-repo.patch diff --git a/patches/opnfv-fuel/0011-aarch64-skip-configuration-of-hugepages.patch b/patches/opnfv-fuel/0010-aarch64-skip-configuration-of-hugepages.patch index ebf454f4..91a8695d 100644 --- a/patches/opnfv-fuel/0011-aarch64-skip-configuration-of-hugepages.patch +++ b/patches/opnfv-fuel/0010-aarch64-skip-configuration-of-hugepages.patch @@ -16,14 +16,14 @@ Those instructions need to be overwritten for ARM. Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com> Signed-off-by: Charalampos Kominos <charalampos.kominos@enea.com> --- - .../classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml | 4 ++-- + .../cluster/baremetal-mcp-ocata-common-ha/openstack_compute.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml -index 278e55b..ff57ad3 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/openstack_compute.yml -@@ -13,8 +13,8 @@ classes: +diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute.yml +index 8297264..87fa014 100644 +--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute.yml ++++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute.yml +@@ -12,8 +12,8 @@ classes: - system.linux.storage.loopback - system.glusterfs.client.cluster - system.nova.compute.cluster diff --git a/patches/opnfv-fuel/0010-seedng-module-Add-AArch64-repo.patch b/patches/opnfv-fuel/0010-seedng-module-Add-AArch64-repo.patch deleted file mode 100644 index 86a57386..00000000 --- a/patches/opnfv-fuel/0010-seedng-module-Add-AArch64-repo.patch +++ /dev/null @@ -1,57 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: 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: Mon, 21 Aug 2017 20:42:00 +0200 -Subject: [PATCH] seedng: module: Add AArch64 repo - -salt custom py module seedng.py should use custom repo arg -"-R linux.enea.com/saltstack" on AArch64 nodes. - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/patches/0009-seedng-module-Sync-salt-version.patch | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - -diff --git a/mcp/patches/0009-seedng-module-Sync-salt-version.patch b/mcp/patches/0009-seedng-module-Sync-salt-version.patch -index d116c81..20233a9 100644 ---- a/mcp/patches/0009-seedng-module-Sync-salt-version.patch -+++ b/mcp/patches/0009-seedng-module-Sync-salt-version.patch -@@ -8,23 +8,29 @@ - :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> - Date: Mon, 21 Aug 2017 02:03:01 +0200 --Subject: [PATCH] seedng: module: Sync salt version -+Subject: [PATCH] seedng: module: Sync salt version, AArch64 repo - - salt custom py module seedng.py should use the same Salt version - when preinstalling minion for salt-controlled VMs via bootstrap - script. - -+While at it, add AArch64 repo. This used to be a separate patch, but -+we'll squash it in, so reverse-apply checks still work: -+- salt custom py module seedng.py should use custom repo arg -+ "-R linux.enea.com/saltstack" on AArch64 nodes. -+ - Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> - --- - - diff --git a/_modules/seedng.py b/_modules/seedng.py - --- a/_modules/seedng.py - +++ b/_modules/seedng.py --@@ -256,8 +256,10 @@ -+@@ -256,8 +256,11 @@ - boot_, tmppath = (prep_bootstrap(mpt) - or salt.syspaths.BOOTSTRAP) - # Exec the chroot command --+ arg = 'stable {0}'.format('.'.join(salt.version.__version__.split('.')[:2])) -++ arg = '-R linux.enea.com/saltstack ' if os.uname()[-1] == 'aarch64' else '' -++ arg += 'stable {0}'.format('.'.join(salt.version.__version__.split('.')[:2])) - cmd = 'if type salt-minion; then exit 0; ' - - cmd += 'else sh {0} -c /tmp; fi'.format(os.path.join(tmppath, 'bootstrap-salt.sh')) - + cmd += 'else sh {0} -c /tmp {1}; fi'.format( diff --git a/patches/opnfv-fuel/0012-baremetal-virtual-Extend-arch-list-for-UCA-repo.patch b/patches/opnfv-fuel/0011-baremetal-virtual-Extend-arch-list-for-UCA-repo.patch index 9c03bf6e..d51afbfa 100644 --- a/patches/opnfv-fuel/0012-baremetal-virtual-Extend-arch-list-for-UCA-repo.patch +++ b/patches/opnfv-fuel/0011-baremetal-virtual-Extend-arch-list-for-UCA-repo.patch @@ -18,12 +18,12 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> .../cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/compute.yml | 2 +- .../classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/init.yml | 2 +- .../classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/compute.yml | 2 +- - .../classes/cluster/virtual-mcp-ocata-common/openstack_compute.yml | 2 +- - .../classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml | 2 +- + .../classes/cluster/virtual-mcp-ocata-common-noha/openstack_compute.yml | 2 +- + .../cluster/virtual-mcp-ocata-odl-router-noha/openstack/init.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/init.yml -index 9a04c84..80e5bb7 100644 +index fa1ed10..3557ad1 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/init.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/init.yml @@ -27,7 +27,7 @@ parameters: @@ -36,7 +36,7 @@ index 9a04c84..80e5bb7 100644 key_server: keyserver.ubuntu.com kernel: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/compute.yml -index e610dc9..47f4b09 100644 +index 98b182c..a85fca8 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/compute.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/compute.yml @@ -26,7 +26,7 @@ parameters: @@ -49,7 +49,7 @@ index e610dc9..47f4b09 100644 key_server: keyserver.ubuntu.com network: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/init.yml -index 5e855ac..2392cf0 100644 +index 4ef7ffc..253ae1d 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/init.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/init.yml @@ -27,7 +27,7 @@ parameters: @@ -62,7 +62,7 @@ index 5e855ac..2392cf0 100644 key_server: keyserver.ubuntu.com kernel: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/compute.yml -index 9ed3a80..e865d5c 100644 +index 9973075..f5a8d9b 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/compute.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/compute.yml @@ -20,6 +20,6 @@ parameters: @@ -73,10 +73,10 @@ index 9ed3a80..e865d5c 100644 + architectures: amd64,arm64 key_id: EC4926EA key_server: keyserver.ubuntu.com -diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_compute.yml +diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/openstack_compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/openstack_compute.yml index ad06754..d4e1c40 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_compute.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_compute.yml +--- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/openstack_compute.yml ++++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common-noha/openstack_compute.yml @@ -65,7 +65,7 @@ parameters: repo: uca: @@ -86,10 +86,10 @@ index ad06754..d4e1c40 100644 key_id: EC4926EA key_server: keyserver.ubuntu.com kernel: -diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml -index 5be63e5..1cfd5a3 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml +diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router-noha/openstack/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router-noha/openstack/init.yml +index f4b78c3..42bb9d4 100644 +--- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router-noha/openstack/init.yml ++++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router-noha/openstack/init.yml @@ -17,7 +17,7 @@ parameters: repo: uca: diff --git a/patches/opnfv-fuel/0013-Add-opnfv-user-to-the-deployment.patch b/patches/opnfv-fuel/0012-Add-opnfv-user-to-the-deployment.patch index 42fba2e0..27c321b5 100644 --- a/patches/opnfv-fuel/0013-Add-opnfv-user-to-the-deployment.patch +++ b/patches/opnfv-fuel/0012-Add-opnfv-user-to-the-deployment.patch @@ -14,32 +14,37 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> Signed-off-by: Charalampos Kominos <Charalampos.Kominos@enea.com> Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com> --- - mcp/config/states/virtual_control_plane | 2 ++ + mcp/config/states/baremetal_init | 1 + + mcp/config/states/virtual_control_plane | 1 + mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/init.yml | 4 ++++ mcp/salt-formulas/opnfv/adduser.sls | 7 +++++++ - 3 files changed, 13 insertions(+) + 4 files changed, 13 insertions(+) create mode 100644 mcp/salt-formulas/opnfv/adduser.sls -diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane -index 88a4488..298a9de 100755 ---- a/mcp/config/states/virtual_control_plane -+++ b/mcp/config/states/virtual_control_plane -@@ -37,6 +37,7 @@ salt -C 'kvm* or cmp*' file.replace $debian_ip_source \ +diff --git a/mcp/config/states/baremetal_init b/mcp/config/states/baremetal_init +index 15fc572..7c86513 100755 +--- a/mcp/config/states/baremetal_init ++++ b/mcp/config/states/baremetal_init +@@ -23,6 +23,7 @@ salt -C 'kvm* or cmp*' file.replace $debian_ip_source \ repl="\n if not __salt__['pkg.version']('vlan'):\n __salt__['pkg.install']('vlan')" salt -C 'kvm*' pkg.install bridge-utils -+salt -C '*' state.apply opnfv.adduser ++salt -C 'kvm* or cmp*' state.apply opnfv.adduser salt -C 'kvm*' state.apply linux.network + salt -C 'kvm* or cmp*' state.apply salt.minion salt -C 'cmp*' state.apply linux.system - salt -C 'cmp*' state.apply linux.network || true -@@ -66,6 +67,7 @@ while [ $rc -ne 0 ] && [ ${attempt} -lt ${total_attempts} ]; do - rc=0 - for node in $vcp_nodes; do - salt "$node" test.ping 2>/dev/null || { rc=$?; break; }; -+ salt -C "$node" state.apply opnfv.adduser - done - sleep 5 +diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane +index f0da66f..b9c252b 100755 +--- a/mcp/config/states/virtual_control_plane ++++ b/mcp/config/states/virtual_control_plane +@@ -49,6 +49,7 @@ while [ $rc -ne 0 ] && [ ${attempt} -lt ${total_attempts} ]; do ((attempt+=1)) + done + ++wait_for 5.0 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply opnfv.adduser" + wait_for 10.0 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all" + + # Propagate APT proxy config created by curtin on baremetal nodes to VCP VMs diff --git a/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/init.yml b/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/init.yml index aa780e6..e4069c0 100644 --- a/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/init.yml diff --git a/patches/opnfv-fuel/0014-baremetal-linux-image-generic-hwe-16.04-edge.patch b/patches/opnfv-fuel/0014-baremetal-linux-image-generic-hwe-16.04-edge.patch deleted file mode 100644 index 6a131c20..00000000 --- a/patches/opnfv-fuel/0014-baremetal-linux-image-generic-hwe-16.04-edge.patch +++ /dev/null @@ -1,50 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: 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: Sun, 5 Nov 2017 21:02:17 +0100 -Subject: [PATCH] baremetal: linux-image-generic-hwe-16.04-edge - -The Salt way to pin the kernel version is via its reclass model, by -defining system.kernel.version. However, this only works with -explicit kernel package names and not with meta package names -(e.g. linux-image-4.13.0-9916-generic is expected instead of - linux-image-generic-hwe-16.04-edge, which would break the -`linux_kernel_old_absent` state). - -For now, let's explicitly call `pkg.install` for the kernel and -headers packages, using the meta package name to ensure automatic -fallback to Ubuntu packages if Armband repos are missing, -respectively to automatically pick up new kernel package names -in case of meta + kernel packages bump later. - -JIRA: ARMBAND-280 - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/config/states/virtual_control_plane | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane -index 298a9de..f569ba2 100755 ---- a/mcp/config/states/virtual_control_plane -+++ b/mcp/config/states/virtual_control_plane -@@ -39,9 +39,12 @@ salt -C 'kvm* or cmp*' file.replace $debian_ip_source \ - salt -C 'kvm*' pkg.install bridge-utils - salt -C '*' state.apply opnfv.adduser - salt -C 'kvm*' state.apply linux.network --salt -C 'cmp*' state.apply linux.system -+salt -C 'kvm* or cmp*' state.apply linux.system - salt -C 'cmp*' state.apply linux.network || true - salt -C 'kvm*' state.apply armband.salt_minion || true -+# NOTE(armband): Should be later moved to reclass as system.kernel.version -+salt -C 'kvm* or cmp*' pkg.install \ -+ linux-image-generic-hwe-16.04-edge,linux-headers-generic-hwe-16.04-edge - salt -C 'kvm* or cmp*' system.reboot - wait_for 90 "! salt -C 'kvm* or cmp*' test.ping | " \ - "tee /dev/stderr | grep -Fq 'Not connected'" diff --git a/patches/opnfv-fuel/0015-Add-pre-install-purge-support-for-base-image.patch b/patches/opnfv-fuel/0015-Add-pre-install-purge-support-for-base-image.patch deleted file mode 100644 index 28a31396..00000000 --- a/patches/opnfv-fuel/0015-Add-pre-install-purge-support-for-base-image.patch +++ /dev/null @@ -1,382 +0,0 @@ -From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Date: Fri, 24 Nov 2017 20:28:01 +0100 -Subject: [PATCH] Add pre-{install,purge} support for base image - -Extend <lib.sh> and its invocation from <ci.deploy.sh> with -support for modifying foundation node VMs base image prior to -using it with: -- additional APT GPG keys; -- additional APT repos; -- packages to pre-install; -- packages to pre-remove; -- (non-configurable) cloud init datasource via NoCloud only, - so VCP VMs won't wait for metadata service; - -While at it, re-use the resulting image as a base for another -round of pre-patching (same operations as above are supported) -to provide a base image for VCP VMs. - -Add AArch64-specific configuration based on new mechanisms: -- pre-install linux-image-generic-hwe-16.04-edge (and headers) - for foundation node and VCP (common) image (also requires new - repo and its key); -- pre-install cloud-init for VCP image (it should already be - installed, but script needs non-empty config for VCP to create - the VCP image and transfer it over to Salt Master); - -NOTE: cloud-init is required on VCP VMs for DHCP on 1st iface. - -JIRA: FUEL-309 - -Change-Id: I7dcaf0ffd9c57009133c6d339496ec831ab14375 -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - .gitignore | 1 + - ci/deploy.sh | 23 +++- - mcp/config/scenario/defaults-aarch64.yaml | 18 +++ - .../cluster/all-mcp-ocata-common/aarch64/init.yml | 2 +- - mcp/scripts/lib.sh | 137 ++++++++++++++++++++- - mcp/scripts/salt.sh | 12 ++ - 6 files changed, 185 insertions(+), 8 deletions(-) - -diff --git a/.gitignore b/.gitignore -index 4e90f32..38b4440 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -13,3 +13,4 @@ - **/mcp/scripts/mcp.rsa* - **/mcp/scripts/user-data.sh - **/mcp/scripts/net_mcpcontrol.xml -+**/mcp/scripts/*.img -diff --git a/ci/deploy.sh b/ci/deploy.sh -index b13e18e..427850f 100755 ---- a/ci/deploy.sh -+++ b/ci/deploy.sh -@@ -15,6 +15,7 @@ - do_exit () { - local RC=$? - clean -+ cleanup_mounts - if [ ${RC} -eq 0 ]; then - notify "\n[OK] MCP: Openstack installation finished succesfully!\n\n" 2 - else -@@ -158,6 +159,7 @@ NO_DEPLOY_ENVIRONMENT=${NO_DEPLOY_ENVIRONMENT:-0} - ERASE_ENV=${ERASE_ENV:-0} - - source "${DEPLOY_DIR}/globals.sh" -+source "${DEPLOY_DIR}/lib.sh" - - # - # END of variables to customize -@@ -340,7 +342,6 @@ fi - - # Get required infra deployment data - set +x --source lib.sh - eval "$(parse_yaml "${SCENARIO_DIR}/defaults-$(uname -i).yaml")" - eval "$(parse_yaml "${SCENARIO_DIR}/${DEPLOY_TYPE}/${DEPLOY_SCENARIO}.yaml")" - eval "$(parse_yaml "${LOCAL_PDF_RECLASS}")" -@@ -358,6 +359,23 @@ for node in "${virtual_nodes[@]}"; do - done - virtual_nodes_data=${virtual_nodes_data%|} - -+# Serialize repos, packages to (pre-)install/remove for: -+# - foundation node VM base image (virtual: all VMs, baremetal: cfg01|mas01) -+# - virtualized control plane VM base image (only when VCP is used) -+base_image_flavors=common -+if [[ "${cluster_states[*]}" =~ virtual_control ]]; then -+ base_image_flavors+=" control" -+fi -+for sc in ${base_image_flavors}; do -+ for va in apt_keys apt_repos pkg_install pkg_remove; do -+ key=virtual_${sc}_${va} -+ eval "${key}=\${${key}[@]// /|}" -+ eval "${key}=\${${key}// /,}" -+ virtual_repos_pkgs+="${!key}^" -+ done -+done -+virtual_repos_pkgs=${virtual_repos_pkgs%^} -+ - # Expand reclass and virsh network templates - for tp in "${RECLASS_CLUSTER_DIR}/all-mcp-ocata-common/opnfv/"*.template \ - net_*.template; do -@@ -413,7 +431,8 @@ elif [ ${USE_EXISTING_INFRA} -gt 0 ]; then - check_connection - else - generate_ssh_key -- prepare_vms "${base_image}" "${STORAGE_DIR}" "${virtual_nodes[@]}" -+ prepare_vms "${base_image}" "${STORAGE_DIR}" "${virtual_repos_pkgs}" \ -+ "${virtual_nodes[@]}" - create_networks "${OPNFV_BRIDGES[@]}" - create_vms "${STORAGE_DIR}" "${virtual_nodes_data}" "${OPNFV_BRIDGES[@]}" - update_mcpcontrol_network -diff --git a/mcp/config/scenario/defaults-aarch64.yaml b/mcp/config/scenario/defaults-aarch64.yaml -index 24a4037..d989819 100644 ---- a/mcp/config/scenario/defaults-aarch64.yaml -+++ b/mcp/config/scenario/defaults-aarch64.yaml -@@ -11,3 +11,21 @@ virtual: - default: - vcpus: 6 - ram: 4096 -+ common: -+ apt: -+ keys: -+ - https://linux.enea.com/mcp-repos/ocata/xenial/archive-mcpocata.key -+ repos: -+ # <repo name> <repo prio> deb [arch=<arch>] <repo url> <repo dist> <repo comp> -+ - armband_openstack 1100 deb [arch=arm64] http://linux.enea.com/mcp-repos/ocata/xenial ocata main -+ - armband_mk_openstack 1100 deb [arch=arm64] http://linux.enea.com/apt-mk/xenial nightly ocata -+ # NOTE(armband): Empty repo, keep commented out as reference -+ # - armband_mcp_extra 1100 deb [arch=arm64] http://linux.enea.com/apt-mk/xenial nightly extra -+ pkg: -+ install: -+ - linux-image-generic-hwe-16.04-edge -+ - linux-headers-generic-hwe-16.04-edge -+ control: -+ pkg: -+ install: -+ - cloud-init -diff --git a/mcp/reclass/classes/cluster/all-mcp-ocata-common/aarch64/init.yml b/mcp/reclass/classes/cluster/all-mcp-ocata-common/aarch64/init.yml -index b5b78ec..0350afa 100644 ---- a/mcp/reclass/classes/cluster/all-mcp-ocata-common/aarch64/init.yml -+++ b/mcp/reclass/classes/cluster/all-mcp-ocata-common/aarch64/init.yml -@@ -8,7 +8,7 @@ - --- - parameters: - _param: -- salt_control_xenial_image: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-arm64-uefi1.img -+ salt_control_xenial_image: salt://salt/files/control/images/base_image_opnfv_fuel_vcp.img - - # VMs spawned on Foundation Node / Jump Host net ifaces (max 4) - opnfv_fn_vm_primary_interface: enp1s0 -diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh -index c6d5d26..654f45e 100644 ---- a/mcp/scripts/lib.sh -+++ b/mcp/scripts/lib.sh -@@ -1,4 +1,5 @@ - #!/bin/bash -e -+# shellcheck disable=SC2155,SC1001 - ############################################################################## - # Copyright (c) 2017 Mirantis Inc., Enea AB and others. - # All rights reserved. This program and the accompanying materials -@@ -11,7 +12,6 @@ - # - - function generate_ssh_key { -- # shellcheck disable=SC2155 - local mcp_ssh_key=$(basename "${SSH_KEY}") - local user=${USER} - if [ -n "${SUDO_USER}" ] && [ "${SUDO_USER}" != 'root' ]; then -@@ -35,6 +35,110 @@ function get_base_image { - wget -P "${image_dir}" -N "${base_image}" - } - -+function mount_image { -+ local image=$1 -+ local image_dir=$2 -+ OPNFV_MNT_DIR="${image_dir}/ubuntu" -+ -+ sudo modprobe nbd loop -+ # Find free nbd, loop devices -+ for dev in '/sys/class/block/nbd'*; do -+ if [ "$(cat "${dev}/size")" = '0' ]; then -+ OPNFV_NBD_DEV=/dev/$(basename "${dev}") -+ break -+ fi -+ done -+ OPNFV_LOOP_DEV=$(losetup -f) -+ export OPNFV_MNT_DIR OPNFV_LOOP_DEV -+ [ -n "${OPNFV_NBD_DEV}" ] && [ -n "${OPNFV_LOOP_DEV}" ] || exit 1 -+ sudo qemu-nbd --connect="${OPNFV_NBD_DEV}" --aio=native --cache=none \ -+ "${image_dir}/${image}" -+ sleep 5 # /dev/nbdNp1 takes some time to come up -+ # grub-update does not like /dev/nbd*, so use a loop device to work around it -+ # Hardcode partition index to 1, unlikely to change for Ubuntu UCA image -+ sudo losetup "${OPNFV_LOOP_DEV}" "${OPNFV_NBD_DEV}p1" -+ mkdir -p "${OPNFV_MNT_DIR}" -+ sudo mount "${OPNFV_LOOP_DEV}" "${OPNFV_MNT_DIR}" -+ sudo mount -t proc proc "${OPNFV_MNT_DIR}/proc" -+ sudo mount -t sysfs sys "${OPNFV_MNT_DIR}/sys" -+ sudo mount -o bind /dev "${OPNFV_MNT_DIR}/dev" -+ sudo mkdir -p "${OPNFV_MNT_DIR}/run/resolvconf" -+ sudo cp /etc/resolv.conf "${OPNFV_MNT_DIR}/run/resolvconf" -+ echo "GRUB_DISABLE_OS_PROBER=true" | \ -+ sudo tee -a "${OPNFV_MNT_DIR}/etc/default/grub" -+} -+ -+function apt_repos_pkgs_image { -+ local apt_key_urls=(${1//,/ }) -+ local all_repos=(${2//,/ }) -+ local pkgs_i=(${3//,/ }) -+ local pkgs_r=(${4//,/ }) -+ [ -n "${OPNFV_MNT_DIR}" ] || exit 1 -+ -+ # APT keys -+ if [ "${#apt_key_urls[@]}" -gt 0 ]; then -+ for apt_key in "${apt_key_urls[@]}"; do -+ sudo chroot "${OPNFV_MNT_DIR}" /bin/bash -c \ -+ "wget -qO - '${apt_key}' | apt-key add -" -+ done -+ fi -+ # Additional repositories -+ for repo_line in "${all_repos[@]}"; do -+ # <repo_name>|<repo prio>|deb|[arch=<arch>]|<repo url>|<dist>|<repo comp> -+ local repo=(${repo_line//|/ }) -+ [ "${#repo[@]}" -gt 5 ] || continue -+ # NOTE: Names and formatting are compatible with Salt linux.system.repo -+ cat <<-EOF | sudo tee "${OPNFV_MNT_DIR}/etc/apt/preferences.d/${repo[0]}" -+ -+ Package: * -+ Pin: release a=${repo[-2]} -+ Pin-Priority: ${repo[1]} -+ -+ EOF -+ echo "${repo[@]:2}" | sudo tee \ -+ "${OPNFV_MNT_DIR}/etc/apt/sources.list.d/${repo[0]}.list" -+ done -+ # Install packages -+ if [ "${#pkgs_i[@]}" -gt 0 ]; then -+ sudo DEBIAN_FRONTEND="noninteractive" \ -+ chroot "${OPNFV_MNT_DIR}" apt-get update -+ sudo DEBIAN_FRONTEND="noninteractive" FLASH_KERNEL_SKIP="true" \ -+ chroot "${OPNFV_MNT_DIR}" apt-get install -y "${pkgs_i[@]}" -+ fi -+ # Remove packages -+ if [ "${#pkgs_r[@]}" -gt 0 ]; then -+ sudo DEBIAN_FRONTEND="noninteractive" FLASH_KERNEL_SKIP="true" \ -+ chroot "${OPNFV_MNT_DIR}" apt-get purge -y "${pkgs_r[@]}" -+ fi -+ # Disable cloud-init metadata service datasource -+ sudo mkdir -p "${OPNFV_MNT_DIR}/etc/cloud/cloud.cfg.d" -+ echo "datasource_list: [ NoCloud, None ]" | sudo tee \ -+ "${OPNFV_MNT_DIR}/etc/cloud/cloud.cfg.d/95_real_datasources.cfg" -+} -+ -+function cleanup_mounts { -+ # Remove any mounts, loop and/or nbd devs created while patching base image -+ if [ -n "${OPNFV_MNT_DIR}" ] && [ -d "${OPNFV_MNT_DIR}" ]; then -+ if [ -f "${OPNFV_MNT_DIR}/boot/grub/grub.cfg" ]; then -+ # Grub thinks it's running from a live CD -+ sudo sed -i -e 's/^\s*set root=.*$//g' -e 's/^\s*loopback.*$//g' \ -+ "${OPNFV_MNT_DIR}/boot/grub/grub.cfg" -+ fi -+ sudo rm -f "${OPNFV_MNT_DIR}/run/resolvconf/resolv.conf" -+ sync -+ if mountpoint -q "${OPNFV_MNT_DIR}"; then -+ sudo umount -l "${OPNFV_MNT_DIR}" || true -+ fi -+ fi -+ if [ -n "${OPNFV_LOOP_DEV}" ] && \ -+ losetup "${OPNFV_LOOP_DEV}" 1>&2 > /dev/null; then -+ sudo losetup -d "${OPNFV_LOOP_DEV}" -+ fi -+ if [ -n "${OPNFV_NBD_DEV}" ]; then -+ sudo qemu-nbd -d "${OPNFV_NBD_DEV}" || true -+ fi -+} -+ - function cleanup_uefi { - # Clean up Ubuntu boot entry if cfg01, kvm nodes online from previous deploy - # shellcheck disable=SC2086 -@@ -60,22 +164,45 @@ function cleanup_vms { - function prepare_vms { - local base_image=$1; shift - local image_dir=$1; shift -+ local repos_pkgs_str=$1; shift # ^-sep list of repos, pkgs to install/rm - local vnodes=("$@") -+ local image=base_image_opnfv_fuel.img - - cleanup_uefi - cleanup_vms - get_base_image "${base_image}" "${image_dir}" -+ -+ rm -f "${image_dir}/${image%.*}"* -+ if [[ ! "${repos_pkgs_str}" =~ ^\^+$ ]]; then -+ IFS='^' read -r -a repos_pkgs <<< "${repos_pkgs_str}" -+ cp "${image_dir}/${base_image/*\/}" "${image_dir}/${image}" -+ mount_image "${image}" "${image_dir}" -+ apt_repos_pkgs_image "${repos_pkgs[@]:0:4}" -+ cleanup_mounts -+ else -+ ln -sf "${image_dir}/${base_image/*\/}" "${image_dir}/${image}" -+ fi -+ -+ # CWD should be <mcp/scripts> - # shellcheck disable=SC2016 - envsubst '${SALT_MASTER},${CLUSTER_DOMAIN}' < \ - user-data.template > user-data.sh - -+ # Create config ISO and resize OS disk image for each foundation node VM - for node in "${vnodes[@]}"; do -- # create/prepare images - ./create-config-drive.sh -k "$(basename "${SSH_KEY}").pub" -u user-data.sh \ - -h "${node}" "${image_dir}/mcp_${node}.iso" -- cp "${image_dir}/${base_image/*\/}" "${image_dir}/mcp_${node}.qcow2" -+ cp "${image_dir}/${image}" "${image_dir}/mcp_${node}.qcow2" - qemu-img resize "${image_dir}/mcp_${node}.qcow2" 100G - done -+ -+ # VCP VMs base image specific changes -+ if [[ ! "${repos_pkgs_str}" =~ \^{3}$ ]] && [ -n "${repos_pkgs[*]:4}" ]; then -+ mount_image "${image}" "${image_dir}" -+ apt_repos_pkgs_image "${repos_pkgs[@]:4:4}" -+ cleanup_mounts -+ ln -sf "${image_dir}/${image}" "${image_dir}/${image%.*}_vcp.img" -+ fi - } - - function create_networks { -@@ -100,6 +227,8 @@ function create_networks { - - function create_vms { - local image_dir=$1; shift -+ # vnode data should be serialized with the following format: -+ # '<name0>,<ram0>,<vcpu0>|<name1>,<ram1>,<vcpu1>[...]' - IFS='|' read -r -a vnodes <<< "$1"; shift - local vnode_networks=("$@") - -@@ -139,9 +268,7 @@ function create_vms { - - function update_mcpcontrol_network { - # set static ip address for salt master node, MaaS node -- # shellcheck disable=SC2155 - local cmac=$(virsh domiflist cfg01 2>&1| awk '/mcpcontrol/ {print $5; exit}') -- # shellcheck disable=SC2155 - local amac=$(virsh domiflist mas01 2>&1| awk '/mcpcontrol/ {print $5; exit}') - virsh net-update "mcpcontrol" add ip-dhcp-host \ - "<host mac='${cmac}' name='cfg01' ip='${SALT_MASTER}'/>" --live -diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh -index ab096f3..b719aa8 100755 ---- a/mcp/scripts/salt.sh -+++ b/mcp/scripts/salt.sh -@@ -18,6 +18,8 @@ OPNFV_TMP_DIR="/home/${SALT_MASTER_USER}/opnfv" - OPNFV_GIT_DIR="/root/opnfv" - OPNFV_FUEL_DIR="/root/fuel" - OPNFV_RDIR="reclass/classes/cluster/all-mcp-ocata-common" -+OPNFV_VCP_IMG="mcp/scripts/base_image_opnfv_fuel_vcp.img" -+OPNFV_VCP_DIR="/srv/salt/env/prd/salt/files/control/images" - LOCAL_GIT_DIR="${F_GIT_ROOT%${F_GIT_SUBD}}" - LOCAL_PDF_RECLASS=$1 - NODE_MASK='*' -@@ -34,6 +36,11 @@ if [ -n "${LOCAL_PDF_RECLASS}" ] && [ -f "${LOCAL_PDF_RECLASS}" ]; then - rsync -e "ssh ${SSH_OPTS}" "${LOCAL_PDF_RECLASS}" \ - "${remote_tmp}${F_GIT_SUBD}/mcp/${OPNFV_RDIR}/opnfv/" - fi -+local_vcp_img=$(dirname "${LOCAL_PDF_RECLASS}")/$(basename "${OPNFV_VCP_IMG}") -+if [ -e "${local_vcp_img}" ]; then -+ rsync -L -e "ssh ${SSH_OPTS}" "${local_vcp_img}" \ -+ "${remote_tmp}${F_GIT_SUBD}/${OPNFV_VCP_IMG}" -+fi - - # ssh to cfg01 - # shellcheck disable=SC2086,2087 -@@ -95,4 +102,9 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END - salt -C "${NODE_MASK} and not cfg01*" pkg.upgrade refresh=False - - salt -C "${NODE_MASK} or cfg01*" state.sls ntp -+ -+ if [ -f "${OPNFV_FUEL_DIR}/${OPNFV_VCP_IMG}" ]; then -+ mkdir -p "${OPNFV_VCP_DIR}" -+ mv "${OPNFV_FUEL_DIR}/${OPNFV_VCP_IMG}" "${OPNFV_VCP_DIR}/" -+ fi - SALT_INSTALL_END diff --git a/patches/opnfv-fuel/0016-AArch64-base-image-pre-install-salt-minion.patch b/patches/opnfv-fuel/0016-AArch64-base-image-pre-install-salt-minion.patch deleted file mode 100644 index 78cacc70..00000000 --- a/patches/opnfv-fuel/0016-AArch64-base-image-pre-install-salt-minion.patch +++ /dev/null @@ -1,104 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: 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: Mon, 27 Nov 2017 01:29:32 +0100 -Subject: [PATCH] AArch64: base image: pre-install salt-minion - -While at it, rename apt repo in foundation node user-data template -from "salt" to "saltstack", to align with reclass model naming. - -Change-Id: I5b216492349ae187b568884b1ab4046c52b1c6b2 -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - ci/deploy.sh | 4 ++-- - mcp/config/scenario/defaults-aarch64.yaml | 2 ++ - mcp/scripts/lib.sh | 8 +++++++- - mcp/scripts/user-data.template | 2 +- - 4 files changed, 12 insertions(+), 4 deletions(-) - -diff --git a/ci/deploy.sh b/ci/deploy.sh -index 427850f..e2e4a1c 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 -+ libvirt-bin cloud-guest-utils e2fsprogs - [ -n "$(command -v yum)" ] && sudo yum install -y --skip-broken \ - git make rsync genisoimage curl virt-install qemu-kvm util-linux \ -- libvirt -+ libvirt cloud-utils-growpart e2fsprogs - - # For baremetal, python is indirectly required for PDF parsing - if [ "${DEPLOY_TYPE}" = 'baremetal' ]; then -diff --git a/mcp/config/scenario/defaults-aarch64.yaml b/mcp/config/scenario/defaults-aarch64.yaml -index d989819..edcd8d9 100644 ---- a/mcp/config/scenario/defaults-aarch64.yaml -+++ b/mcp/config/scenario/defaults-aarch64.yaml -@@ -17,6 +17,7 @@ virtual: - - https://linux.enea.com/mcp-repos/ocata/xenial/archive-mcpocata.key - repos: - # <repo name> <repo prio> deb [arch=<arch>] <repo url> <repo dist> <repo comp> -+ - saltstack 500 deb [arch=arm64] http://linux.enea.com/saltstack/apt/ubuntu/16.04/arm64/2016.11 xenial main - - armband_openstack 1100 deb [arch=arm64] http://linux.enea.com/mcp-repos/ocata/xenial ocata main - - armband_mk_openstack 1100 deb [arch=arm64] http://linux.enea.com/apt-mk/xenial nightly ocata - # NOTE(armband): Empty repo, keep commented out as reference -@@ -25,6 +26,7 @@ virtual: - install: - - linux-image-generic-hwe-16.04-edge - - linux-headers-generic-hwe-16.04-edge -+ - salt-minion - control: - pkg: - install: -diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh -index 654f45e..8dd92e1 100644 ---- a/mcp/scripts/lib.sh -+++ b/mcp/scripts/lib.sh -@@ -51,11 +51,15 @@ function mount_image { - OPNFV_LOOP_DEV=$(losetup -f) - 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}" - sleep 5 # /dev/nbdNp1 takes some time to come up -- # grub-update does not like /dev/nbd*, so use a loop device to work around it - # 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" -+ 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" - mkdir -p "${OPNFV_MNT_DIR}" - sudo mount "${OPNFV_LOOP_DEV}" "${OPNFV_MNT_DIR}" -@@ -66,6 +70,8 @@ function mount_image { - sudo cp /etc/resolv.conf "${OPNFV_MNT_DIR}/run/resolvconf" - echo "GRUB_DISABLE_OS_PROBER=true" | \ - sudo tee -a "${OPNFV_MNT_DIR}/etc/default/grub" -+ sudo sed -i -e 's/^\(GRUB_TIMEOUT\)=.*$/\1=1/g' -e 's/^GRUB_HIDDEN.*$//g' \ -+ "${OPNFV_MNT_DIR}/etc/default/grub" - } - - function apt_repos_pkgs_image { -diff --git a/mcp/scripts/user-data.template b/mcp/scripts/user-data.template -index 6752039..b654477 100644 ---- a/mcp/scripts/user-data.template -+++ b/mcp/scripts/user-data.template -@@ -11,7 +11,7 @@ if [ "$(uname -i)" = "aarch64" ]; then - SALT_REPO=linux.enea.com/saltstack/apt/ubuntu/16.04/arm64/2016.11 - fi - wget -O - "https://${SALT_REPO}/SALTSTACK-GPG-KEY.pub" | sudo apt-key add - --echo "deb https://${SALT_REPO} xenial main" > /etc/apt/sources.list.d/salt.list -+echo "deb https://${SALT_REPO} xenial main" > /etc/apt/sources.list.d/saltstack.list - apt update - apt-get install -y salt-minion - rm /etc/salt/minion_id diff --git a/patches/reclass-system-salt-model/0002-linux.system-AArch64-Remove-mcelog.patch b/patches/reclass-system-salt-model/0002-linux.system-AArch64-Remove-mcelog.patch index 1c33a3a8..5d344dd8 100644 --- a/patches/reclass-system-salt-model/0002-linux.system-AArch64-Remove-mcelog.patch +++ b/patches/reclass-system-salt-model/0002-linux.system-AArch64-Remove-mcelog.patch @@ -20,7 +20,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 2 deletions(-) diff --git a/linux/system/single/init.yml b/linux/system/single/init.yml -index 8de2dda..c702a48 100644 +index c7c583b..764dfe3 100644 --- a/linux/system/single/init.yml +++ b/linux/system/single/init.yml @@ -19,8 +19,6 @@ parameters: @@ -29,6 +29,6 @@ index 8de2dda..c702a48 100644 version: purged - mcelog: - version: latest - kernel: - modules: - - nf_conntrack + apt: + config: + compression-workaround: diff --git a/upstream/fuel b/upstream/fuel -Subproject 74a5bd6ae60916c664b0ec902418e3fae234b0c +Subproject fe9be64738ff1a1091e7df5b04b391fb15d6abc |