diff options
41 files changed, 310 insertions, 2139 deletions
diff --git a/docs/release/installation/img/README.rst b/docs/release/installation/img/README.rst deleted file mode 100644 index bc8d9bed..00000000 --- a/docs/release/installation/img/README.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. SPDX-License-Identifier: CC-BY-4.0 -.. (c) 2017 Ericsson AB, Mirantis Inc., Enea AB and others. - -Image Editor -============ -All files in this directory have been created using `draw.io <http://draw.io>`_. - -Image Sources -============= -Image sources are embedded in each `png` file. -To edit an image, import the `png` file using `draw.io <http://draw.io>`_. diff --git a/docs/release/installation/img/arm_pod5.png b/docs/release/installation/img/arm_pod5.png Binary files differdeleted file mode 100644 index b35b661a..00000000 --- a/docs/release/installation/img/arm_pod5.png +++ /dev/null diff --git a/docs/release/installation/img/fuel_baremetal.png b/docs/release/installation/img/fuel_baremetal.png Binary files differdeleted file mode 100644 index aee42ac3..00000000 --- a/docs/release/installation/img/fuel_baremetal.png +++ /dev/null diff --git a/docs/release/installation/img/fuel_virtual.png b/docs/release/installation/img/fuel_virtual.png Binary files differdeleted file mode 100644 index d7664865..00000000 --- a/docs/release/installation/img/fuel_virtual.png +++ /dev/null diff --git a/docs/release/installation/img/lf_pod2.png b/docs/release/installation/img/lf_pod2.png Binary files differdeleted file mode 100644 index b6c9b8e3..00000000 --- a/docs/release/installation/img/lf_pod2.png +++ /dev/null diff --git a/docs/release/installation/index.rst b/docs/release/installation/index.rst index 784eec25..93bbc408 100644 --- a/docs/release/installation/index.rst +++ b/docs/release/installation/index.rst @@ -1,10 +1,8 @@ -.. _fuel-installation: - .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 .. (c) Open Platform for NFV Project, Inc. and its contributors -.. _fuel-release-installation-label: +.. _armband-release-installation-label: **************************************** Installation instruction for Fuel\@OPNFV diff --git a/docs/release/installation/installation.instruction.rst b/docs/release/installation/installation.instruction.rst index cad1b107..7b00cd04 100644 --- a/docs/release/installation/installation.instruction.rst +++ b/docs/release/installation/installation.instruction.rst @@ -6,545 +6,13 @@ Abstract ======== -This document describes how to install the Euphrates release of -OPNFV when using Fuel as a deployment tool, covering its usage, -limitations, dependencies and required system resources. -This is an unified documentation for both x86_64 and aarch64 -architectures. All information is common for both architectures -except when explicitly stated. - -============ -Introduction -============ - -This document provides guidelines on how to install and -configure the Euphrates release of OPNFV when using Fuel as a -deployment tool, including required software and hardware configurations. - -Although the available installation options provide a high degree of -freedom in how the system is set up, including architecture, services -and features, etc., said permutations may not provide an OPNFV -compliant reference architecture. This document provides a -step-by-step guide that results in an OPNFV Euphrates compliant -deployment. - -The audience of this document is assumed to have good knowledge of -networking and Unix/Linux administration. - -======= -Preface -======= - -Before starting the installation of the Euphrates release of -OPNFV, using Fuel as a deployment tool, some planning must be -done. - -Preparations -============ - -Prior to installation, a number of deployment specific parameters must be collected, those are: - -#. Provider sub-net and gateway information - -#. Provider VLAN information - -#. Provider DNS addresses - -#. Provider NTP addresses - -#. Network overlay you plan to deploy (VLAN, VXLAN, FLAT) - -#. How many nodes and what roles you want to deploy (Controllers, Storage, Computes) - -#. Monitoring options you want to deploy (Ceilometer, Syslog, etc.). - -#. Other options not covered in the document are available in the links above - - -This information will be needed for the configuration procedures -provided in this document. - -========================================= -Hardware Requirements for Virtual Deploys -========================================= - -The following minimum hardware requirements must be met for the virtual -installation of Euphrates using Fuel: - -+----------------------------+--------------------------------------------------------+ -| **HW Aspect** | **Requirement** | -| | | -+============================+========================================================+ -| **1 Jumpserver** | A physical node (also called Foundation Node) that | -| | will host a Salt Master VM and each of the VM nodes in | -| | the virtual deploy | -+----------------------------+--------------------------------------------------------+ -| **CPU** | Minimum 1 socket with Virtualization support | -+----------------------------+--------------------------------------------------------+ -| **RAM** | Minimum 32GB/server (Depending on VNF work load) | -+----------------------------+--------------------------------------------------------+ -| **Disk** | Minimum 100GB (SSD or SCSI (15krpm) highly recommended | -+----------------------------+--------------------------------------------------------+ - - -=========================================== -Hardware Requirements for Baremetal Deploys -=========================================== - -The following minimum hardware requirements must be met for the baremetal -installation of Euphrates using Fuel: - -+-------------------------+------------------------------------------------------+ -| **HW Aspect** | **Requirement** | -| | | -+=========================+======================================================+ -| **# of nodes** | Minimum 5 | -| | | -| | - 3 KVM servers which will run all the controller | -| | services | -| | | -| | - 2 Compute nodes | -| | | -+-------------------------+------------------------------------------------------+ -| **CPU** | Minimum 1 socket with Virtualization support | -+-------------------------+------------------------------------------------------+ -| **RAM** | Minimum 16GB/server (Depending on VNF work load) | -+-------------------------+------------------------------------------------------+ -| **Disk** | Minimum 256GB 10kRPM spinning disks | -+-------------------------+------------------------------------------------------+ -| **Networks** | 4 VLANs (PUBLIC, MGMT, STORAGE, PRIVATE) - can be | -| | a mix of tagged/native | -| | | -| | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network | -| | | -| | Note: These can be allocated to a single NIC - | -| | or spread out over multiple NICs | -+-------------------------+------------------------------------------------------+ -| **1 Jumpserver** | A physical node (also called Foundation Node) that | -| | hosts the Salt Master and MaaS VMs | -+-------------------------+------------------------------------------------------+ -| **Power management** | All targets need to have power management tools that | -| | allow rebooting the hardware and setting the boot | -| | order (e.g. IPMI) | -+-------------------------+------------------------------------------------------+ - -**NOTE:** All nodes including the Jumpserver must have the same architecture (either x86_64 or aarch64). - -**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/>`_ - -When choosing the hardware on which you will deploy your OpenStack -environment, you should think about: - -- CPU -- Consider the number of virtual machines that you plan to deploy in your cloud environment and the CPUs per virtual machine. - -- Memory -- Depends on the amount of RAM assigned per virtual machine and the controller node. - -- Storage -- Depends on the local drive space per virtual machine, remote volumes that can be attached to a virtual machine, and object storage. - -- Networking -- Depends on the Choose Network Topology, the network bandwidth per virtual machine, and network storage. - -================================================ -Top of the Rack (TOR) Configuration Requirements -================================================ - -The switching infrastructure provides connectivity for the OPNFV -infrastructure operations, tenant networks (East/West) and provider -connectivity (North/South); it also provides needed connectivity for -the Storage Area Network (SAN). -To avoid traffic congestion, it is strongly suggested that three -physically separated networks are used, that is: 1 physical network -for administration and control, one physical network for tenant private -and public networks, and one physical network for SAN. -The switching connectivity can (but does not need to) be fully redundant, -in such case it comprises a redundant 10GE switch pair for each of the -three physically separated networks. - -The physical TOR switches are **not** automatically configured from -the Fuel OPNFV reference platform. All the networks involved in the OPNFV -infrastructure as well as the provider networks and the private tenant -VLANs needs to be manually configured. - -Manual configuration of the Euphrates hardware platform should -be carried out according to the `OPNFV Pharos Specification -<https://wiki.opnfv.org/display/pharos/Pharos+Specification>`_. - -============================ -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_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 Pike release - deb http://linux.enea.com/mcp-repos/pike/xenial pike-armband main - - $ apt-get update - -Fuel@OPNFV has been validated by CI using the following distributions -installed on the Jumpserver: - - - CentOS 7 (recommended by Pharos specification); - - Ubuntu Xenial; - -**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 -========================================== - -This section describes the process of installing all the components needed to -deploy the full OPNFV reference platform stack across a server cluster. - -The installation is done with Mirantis Cloud Platform (MCP), which is based on -a reclass model. This model provides the formula inputs to Salt, to make the deploy -automatic based on deployment scenario. -The reclass model covers: - - - Infrastucture node definition: Salt Master node (cfg01) and MaaS node (mas01) - - 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 - - -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 exist for a given network) - - Install OpenStack on the targets - - Leverage Salt to install & configure OpenStack services - -.. figure:: img/fuel_virtual.png - :align: center - :alt: Fuel@OPNFV Virtual POD Network Layout Examples - - Fuel@OPNFV Virtual POD Network Layout Examples - - +-----------------------+------------------------------------------------------------------------+ - | cfg01 | Salt Master VM | - +-----------------------+------------------------------------------------------------------------+ - | ctl01 | Controller VM | - +-----------------------+------------------------------------------------------------------------+ - | cmp01/cmp02 | Compute VMs | - +-----------------------+------------------------------------------------------------------------+ - | gtw01 | Gateway VM with neutron services (dhcp agent, L3 agent, metadata, etc) | - +-----------------------+------------------------------------------------------------------------+ - | odl01 | VM on which ODL runs (for scenarios deployed with ODL) | - +-----------------------+------------------------------------------------------------------------+ - - -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 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. - - -Automatic Installation of a Baremetal POD -========================================= - -The baremetal installation process can be done by editing the information about -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. - -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 - - Leverage MaaS to provision baremetal nodes with the operating system - - 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 - :alt: Fuel@OPNFV Baremetal POD Network Layout Example - - Fuel@OPNFV Baremetal POD Network Layout Example - - +-----------------------+---------------------------------------------------------+ - | cfg01 | Salt Master VM | - +-----------------------+---------------------------------------------------------+ - | mas01 | MaaS Node VM | - +-----------------------+---------------------------------------------------------+ - | kvm01..03 | Baremetals which hold the VMs with controller functions | - +-----------------------+---------------------------------------------------------+ - | cmp001/cmp002 | Baremetal compute nodes | - +-----------------------+---------------------------------------------------------+ - | prx01/prx02 | Proxy VMs for Nginx | - +-----------------------+---------------------------------------------------------+ - | msg01..03 | RabbitMQ Service VMs | - +-----------------------+---------------------------------------------------------+ - | dbs01..03 | MySQL service VMs | - +-----------------------+---------------------------------------------------------+ - | mdb01..03 | Telemetry VMs | - +-----------------------+---------------------------------------------------------+ - | odl01 | VM on which ODL runs (for scenarios deployed with ODL) | - +-----------------------+---------------------------------------------------------+ - | Tenant VM | VM running in the cloud | - +-----------------------+---------------------------------------------------------+ - -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. - - -Steps to Start the Automatic Deploy -=================================== - -These steps are common both for virtual and baremetal deploys. - -#. Clone the Fuel code from gerrit - - For x86_64 - - .. code-block:: bash - - $ git clone https://git.opnfv.org/fuel - $ cd fuel - - For aarch64 - - .. code-block:: bash - - $ git clone https://git.opnfv.org/armband - $ cd armband - -#. Checkout the Euphrates release - - .. code-block:: bash - - $ git checkout opnfv-5.0.2 - -#. 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> \ - -D \ - -S <Storage directory for disk images> |& tee deploy.log - -Examples --------- -#. Virtual deploy - - To start a virtual deployment, it is required to have the `virtual` keyword - while specifying the pod name to the installer script. - - It will create the required bridges and networks, configure Salt Master and - install OpenStack. - - .. code-block:: bash - - $ ci/deploy.sh -b file:///home/jenkins/tmpdir/securedlab \ - -l ericsson \ - -p virtual_kvm \ - -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. - The administrator credentials are **admin** / **opnfv_secret**. - -#. Baremetal deploy - - A x86 deploy on pod2 from Linux Foundation lab - - .. code-block:: bash - - $ ci/deploy.sh -b file:///home/jenkins/tmpdir/securedlab \ - -l lf \ - -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 - :alt: Fuel@OPNFV LF POD2 Network Layout - - Fuel@OPNFV LF POD2 Network Layout - - Once the deployment is complete, the SaltStack Deployment Documentation is - available at http://<Proxy VIP>:8090, e.g. http://172.30.10.103:8090. - - An aarch64 deploy on pod5 from Arm lab - - .. code-block:: bash - - $ 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 - :alt: Fuel@OPNFV ARM POD5 Network Layout - - Fuel@OPNFV ARM POD5 Network Layout - -Pod Descriptor Files -==================== - -Descriptor files provide the installer with an abstraction of the target pod -with all its hardware characteristics and required parameters. This information -is split into two different files: -Pod Descriptor File (PDF) and Installer Descriptor File (IDF). - - -The Pod Descriptor File is a hardware and network description of the pod -infrastructure. The information is modeled under a yaml structure. -A reference file with the expected yaml structure is available at -*mcp/config/labs/local/pod1.yaml* - -A common network section describes all the internal and provider networks -assigned to the pod. Each network is expected to have a vlan tag, IP subnet and -attached interface on the boards. Untagged vlans shall be defined as "native". - -The hardware description is arranged into a main "jumphost" node and a "nodes" -set for all target boards. For each node the following characteristics -are defined: - -- Node parameters including CPU features and total memory. -- A list of available disks. -- Remote management parameters. -- Network interfaces list including mac address, speed and advanced features. -- IP list of fixed IPs for the node - -**Note**: the fixed IPs are ignored by the MCP installer script and it will instead -assign based on the network ranges defined under the pod network configuration. - - -The Installer Descriptor File extends the PDF with pod related parameters -required by the installer. This information may differ per each installer type -and it is not considered part of the pod infrastructure. Fuel installer relies -on the IDF model to map the networks to the bridges on the foundation node and -to setup all node NICs by defining the expected OS device name and bus address. - - -The file follows a yaml structure and a "fuel" section is expected. Contents and -references must be aligned with the PDF file. The IDF file must be named after -the PDF with the prefix "idf-". A reference file with the expected structure -is available at *mcp/config/labs/local/idf-pod1.yaml* - - -============= -Release Notes -============= - -Please refer to the :ref:`Release Notes <fuel-release-notes-label>` article. - -========== -References -========== - -OPNFV - -1) `OPNFV Home Page <http://www.opnfv.org>`_ -2) `OPNFV documentation <http://docs.opnfv.org>`_ -3) `Software downloads <https://www.opnfv.org/software/download>`_ - -OpenStack - -4) `OpenStack Ocata Release Artifacts <http://www.openstack.org/software/ocata>`_ -5) `OpenStack Documentation <http://docs.openstack.org>`_ - -OpenDaylight - -6) `OpenDaylight Artifacts <http://www.opendaylight.org/software/downloads>`_ - -Fuel - -7) `Mirantis Cloud Platform Documentation <https://docs.mirantis.com/mcp/latest>`_ - -Salt - -8) `Saltstack Documentation <https://docs.saltstack.com/en/latest/topics>`_ -9) `Saltstack Formulas <http://salt-formulas.readthedocs.io/en/latest/develop/overview-reclass.html>`_ - -Reclass - -10) `Reclass model <http://reclass.pantsfullofunix.net>`_ +Armband project aims to integrate and test all aspects of OPNFV releases +on ARM-based servers. The goal is to replicate all OPNFV software build, +continuous integration, lab provisioning, and testing processes of each +standard release OPNFV, such that the release can be available on both +Intel Architecture-based and ARM Architecture-based servers. + +The armband repo contains the patches necessary for Fuel installer to run on +aarch64 hardware. For more information on how to install the Fraser release +of OPNFV when using Fuel as a deployment tool check +:ref:`fuel-release-installation-label` diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst index 4b1e4fa7..3010ff5b 100644 --- a/docs/release/release-notes/index.rst +++ b/docs/release/release-notes/index.rst @@ -1,10 +1,8 @@ -.. _fuel-releasenotes: - .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 .. (c) Open Platform for NFV Project, Inc. and its contributors -.. _fuel-release-notes-label: +.. _armband-releasenotes: ***************************** Release notes for Fuel\@OPNFV diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst index 0052ab63..42dfc0d1 100644 --- a/docs/release/release-notes/release-notes.rst +++ b/docs/release/release-notes/release-notes.rst @@ -6,207 +6,13 @@ Abstract ======== -This document compiles the release notes for the Euphrates release of -OPNFV when using Fuel as a deployment tool. This is an unified documentation -for both x86_64 and aarch64 architectures. All information is common for -both architectures except when explicitly stated. +Armband project aims to integrate and test all aspects of OPNFV releases +on ARM-based servers. The goal is to replicate all OPNFV software build, +continuous integration, lab provisioning, and testing processes of each +standard release OPNFV, such that the release can be available on both +Intel Architecture-based and ARM Architecture-based servers. +The armband repo contains the patches necessary for Fuel installer to run on +aarch64 hardware. For more information on Fraser release notes check +:ref:`fuel-release-notes-label` -=============== -Important Notes -=============== - -These notes provides release information for the use of Fuel as deployment -tool for the Euphrates release of OPNFV. - -The goal of the Euphrates release and this Fuel-based deployment process is -to establish a lab ready platform accelerating further development -of the OPNFV infrastructure. - -Carefully follow the installation-instructions. - -======= -Summary -======= - -For Euphrates, the typical use of Fuel as an OpenStack installer is -supplemented with OPNFV unique components such as: - -- `OpenDaylight <http://www.opendaylight.org/software>`_ -- `Open vSwitch for NFV <https://wiki.opnfv.org/ovsnfv>`_ - -As well as OPNFV-unique configurations of the Hardware and Software stack. - -This Euphrates artifact provides Fuel as the deployment stage tool in the -OPNFV CI pipeline including: - -- Documentation built by Jenkins - - - overall OPNFV documentation - - - this document (release notes) - - - installation instructions - -- Automated deployment of Euphrates with running on bare metal or a nested - hypervisor environment (KVM) - -- Automated validation of the Euphrates deployment - -============ -Release Data -============ - -+--------------------------------------+--------------------------------------+ -| **Project** | fuel/armband | -| | | -+--------------------------------------+--------------------------------------+ -| **Repo/tag** | opnfv-5.1.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Release designation** | Euphrates 5.1 | -| | | -+--------------------------------------+--------------------------------------+ -| **Release date** | December 15 2017 | -| | | -+--------------------------------------+--------------------------------------+ -| **Purpose of the delivery** | Euphrates alignment to Released | -| | MCP 1.0 baseline + features and | -| | bug-fixes for the following | -| | feaures: | -| | | -| | - Open vSwitch for NFV | -| | - OpenDaylight | -+--------------------------------------+--------------------------------------+ - -Version Change -============== - -Module Version Changes ----------------------- -This is the Euphrates 5.1 release. -It is based on following upstream versions: - -- MCP 1.0 Base Release - -- OpenStack Ocata Release - -- OpenDaylight - -Document Changes ----------------- -This is the Euphrates 5.1 release. -It comes with the following documentation: - -- `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 -================== - -Feature Additions ------------------ - -**JIRA TICKETS:** -`Euphrates 5.1 new features <https://jira.opnfv.org/issues/?filter=12114>`_ - -Bug Corrections ---------------- - -**JIRA TICKETS:** - -`Euphrates 5.1 bug fixes <https://jira.opnfv.org/issues/?filter=12115>`_ - -(Also See respective Integrated feature project's bug tracking) - -Deliverables -============ - -Software Deliverables ---------------------- - -- `Fuel@x86_64 installer script files <https://git.opnfv.org/fuel>`_ - -- `Fuel@aarch64 installer script files <https://git.opnfv.org/armband>`_ - -Documentation Deliverables --------------------------- - -- `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 -========================================= - -System Limitations -================== - -- **Max number of blades:** 1 Jumpserver, 3 Controllers, 20 Compute blades - -- **Min number of blades:** 1 Jumpserver - -- **Storage:** Cinder is the only supported storage configuration - -- **Max number of networks:** 65k - - -Known Issues -============ - -**JIRA TICKETS:** - -`Known issues <https://jira.opnfv.org/issues/?filter=12116>`_ - -(Also See respective Integrated feature project's bug tracking) - -Workarounds -=========== - -**JIRA TICKETS:** - -- - -(Also See respective Integrated feature project's bug tracking) - -============ -Test Results -============ -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.1 release, please see: - -OPNFV -===== - -1) `OPNFV Home Page <http://www.opnfv.org>`_ -2) `OPNFV Documentation <http://docs.opnfv.org>`_ -3) `OPNFV Software Downloads <https://www.opnfv.org/software/download>`_ - -OpenStack -========= - -4) `OpenStack Ocata Release Artifacts <http://www.openstack.org/software/ocata>`_ - -5) `OpenStack Documentation <http://docs.openstack.org>`_ - -OpenDaylight -============ - -6) `OpenDaylight Artifacts <http://www.opendaylight.org/software/downloads>`_ - -Fuel -==== - -7) `Mirantis Cloud Platform Documentation <https://docs.mirantis.com/mcp/latest>`_ diff --git a/docs/release/scenarios/os-nosdn-ovs-ha/index.rst b/docs/release/scenarios/os-nosdn-ovs-ha/index.rst deleted file mode 100644 index af0105b8..00000000 --- a/docs/release/scenarios/os-nosdn-ovs-ha/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _os-nosdn-ovs-ha1: - -.. This work is licensed under a Creative Commons Attribution 4.0 International Licence. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2017 Mirantis Inc., Enea Software AB and others - -======================================== -os-nosdn-ovs-ha overview and description -======================================== - -.. toctree:: - :numbered: - :maxdepth: 2 - - os-nosdn-ovs-ha.rst - diff --git a/docs/release/scenarios/os-nosdn-ovs-ha/os-nosdn-ovs-ha.rst b/docs/release/scenarios/os-nosdn-ovs-ha/os-nosdn-ovs-ha.rst deleted file mode 100644 index 5e30ab54..00000000 --- a/docs/release/scenarios/os-nosdn-ovs-ha/os-nosdn-ovs-ha.rst +++ /dev/null @@ -1,42 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c)2017 Mirantis Inc., Enea Software AB and others - -This document provides scenario level details for Euphrates 5.0 of -deployment with no SDN controller and no extra features enabled. - -============ -Introduction -============ - -This scenario is used primarily to validate and deploy a Ocata OpenStack -deployment without any NFV features or SDN controller enabled. - -Scenario components and composition -=================================== - -This scenario is composed of common OpenStack services enabled by default, -including Nova, Neutron, Glance, Cinder, Keystone, Horizon. It also installs -the DPDK-enabled Open vSwitch component. - -All services are in HA, meaning that there are multiple cloned instances of -each service, and they are balanced by HA Proxy using a Virtual IP Address -per service. - - -Scenario usage overview -======================= - -Simply deploy this scenario by using the os-nosdn-ovs-ha.yaml deploy -settings file. - -Limitations, Issues and Workarounds -=================================== - -None - -References -========== - -For more information on the OPNFV Euphrates release, please visit -http://www.opnfv.org/euphrates diff --git a/docs/release/scenarios/os-nosdn-ovs-noha/index.rst b/docs/release/scenarios/os-nosdn-ovs-noha/index.rst deleted file mode 100644 index 066abc93..00000000 --- a/docs/release/scenarios/os-nosdn-ovs-noha/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _os-nosdn-ovs-noha1: - -.. This work is licensed under a Creative Commons Attribution 4.0 International Licence. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2017 Mirantis Inc., Enea Software AB and others - -========================================== -os-nosdn-ovs-noha overview and description -========================================== - -.. toctree:: - :numbered: - :maxdepth: 2 - - os-nosdn-ovs-noha.rst - diff --git a/docs/release/scenarios/os-nosdn-ovs-noha/os-nosdn-ovs-noha.rst b/docs/release/scenarios/os-nosdn-ovs-noha/os-nosdn-ovs-noha.rst deleted file mode 100644 index 7ac4e111..00000000 --- a/docs/release/scenarios/os-nosdn-ovs-noha/os-nosdn-ovs-noha.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2017 Mirantis Inc., Enea Software AB and others - -This document provides scenario level details for Euphrates 5.0 of -deployment with no SDN controller and no extra features enabled. - -============ -Introduction -============ - -This scenario is used primarily to validate and deploy a Ocata OpenStack -deployment without any NFV features or SDN controller enabled. - - -Scenario components and composition -=================================== - -This scenario is composed of common OpenStack services enabled by default, -including Nova, Neutron, Glance, Cinder, Keystone, Horizon. It also installs -the DPDK-enabled Open vSwitch component. - - -Scenario usage overview -======================= - -Simply deploy this scenario by using the os-nosdn-ovs-ha.yaml deploy -settings file. - - -Limitations, Issues and Workarounds -=================================== - -Tested on virtual deploy only. - -References -========== - -For more information on the OPNFV Euphrates release, please visit -http://www.opnfv.org/euphrates - diff --git a/docs/release/userguide/img/horizon_login.png b/docs/release/userguide/img/horizon_login.png Binary files differdeleted file mode 100644 index 641ca6c6..00000000 --- a/docs/release/userguide/img/horizon_login.png +++ /dev/null diff --git a/docs/release/userguide/img/reclass_doc.png b/docs/release/userguide/img/reclass_doc.png Binary files differdeleted file mode 100644 index 374f92a6..00000000 --- a/docs/release/userguide/img/reclass_doc.png +++ /dev/null diff --git a/docs/release/userguide/img/salt_services_ip.png b/docs/release/userguide/img/salt_services_ip.png Binary files differdeleted file mode 100644 index 504beb3e..00000000 --- a/docs/release/userguide/img/salt_services_ip.png +++ /dev/null diff --git a/docs/release/userguide/img/saltstack.png b/docs/release/userguide/img/saltstack.png Binary files differdeleted file mode 100644 index d57452c6..00000000 --- a/docs/release/userguide/img/saltstack.png +++ /dev/null diff --git a/docs/release/userguide/index.rst b/docs/release/userguide/index.rst index d4330d08..58baffd3 100644 --- a/docs/release/userguide/index.rst +++ b/docs/release/userguide/index.rst @@ -1,10 +1,8 @@ -.. _fuel-userguide: - .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 .. (c) Open Platform for NFV Project, Inc. and its contributors -.. _fuel-release-userguide-label: +.. _armband-release-userguide-label: ************************** User guide for Fuel\@OPNFV diff --git a/docs/release/userguide/userguide.rst b/docs/release/userguide/userguide.rst index 2b46a84a..80d05d13 100644 --- a/docs/release/userguide/userguide.rst +++ b/docs/release/userguide/userguide.rst @@ -6,319 +6,13 @@ Abstract ======== -This document contains details about how to use OPNFV Fuel - Euphrates -release - after it was deployed. For details on how to deploy check the -installation instructions in the :ref:`references` section. - -This is an unified documentation for both x86_64 and aarch64 -architectures. All information is common for both architectures -except when explicitly stated. - - - -================ -Network Overview -================ - -Fuel uses several networks to deploy and administer the cloud: - -+------------------+-------------------+---------------------------------------------------------+ -| Network name | Deploy Type | Description | -| | | | -+==================+===================+=========================================================+ -| **PXE/ADMIN** | baremetal only | Used for booting the nodes via PXE | -+------------------+-------------------+---------------------------------------------------------+ -| **MCPCONTROL** | baremetal & | Used to provision the infrastructure VMs (Salt & MaaS). | -| | virtual | On virtual deploys, it is used for Admin too (on target | -| | | VMs) leaving the PXE/Admin bridge unused | -+------------------+-------------------+---------------------------------------------------------+ -| **Mgmt** | baremetal & | Used for internal communication between | -| | virtual | OpenStack components | -+------------------+-------------------+---------------------------------------------------------+ -| **Internal** | baremetal & | Used for VM data communication within the | -| | virtual | cloud deployment | -+------------------+-------------------+---------------------------------------------------------+ -| **Public** | baremetal & | Used to provide Virtual IPs for public endpoints | -| | virtual | that are used to connect to OpenStack services APIs. | -| | | Used by Virtual machines to access the Internet | -+------------------+-------------------+---------------------------------------------------------+ - - -These networks - except mcpcontrol - can be linux bridges configured before the deploy on the -Jumpserver. If they don't exists at deploy time, they will be created by the scripts as virsh -networks. - -Mcpcontrol exists only on the Jumpserver and needs to be virtual because a DHCP server runs -on this network and associates static host entry IPs for Salt and Maas VMs. - - - -=================== -Accessing the Cloud -=================== - -Access to any component of the deployed cloud is done from Jumpserver to user *ubuntu* with -ssh key */var/lib/opnfv/mcp.rsa*. The example below is a connection to Salt master. - - .. code-block:: bash - - $ ssh -o StrictHostKeyChecking=no -i /var/lib/opnfv/mcp.rsa -l ubuntu 10.20.0.2 - -**Note**: The Salt master IP is not hard set, it is configurable via INSTALLER_IP during deployment - - -The Fuel baremetal deploy has a Virtualized Control Plane (VCP) which means that the controller -services are installed in VMs on the baremetal targets (kvm servers). These VMs can also be -accessed with virsh console: user *opnfv*, password *opnfv_secret*. This method does not apply -to infrastructure VMs (Salt master and MaaS). - -The example below is a connection to a controller VM. The connection is made from the baremetal -server kvm01. - - .. code-block:: bash - - $ ssh -o StrictHostKeyChecking=no -i /var/lib/opnfv/mcp.rsa -l ubuntu x.y.z.141 - ubuntu@kvm01:~$ virsh console ctl01 - -User *ubuntu* has sudo rights. User *opnfv* has sudo rights only on aarch64 deploys. - - -============================= -Exploring the Cloud with Salt -============================= - -To gather information about the cloud, the salt commands can be used. It is based -around a master-minion idea where the salt-master pushes config to the minions to -execute actions. - -For example tell salt to execute a ping to 8.8.8.8 on all the nodes. - -.. figure:: img/saltstack.png - -Complex filters can be done to the target like compound queries or node roles. -For more information about Salt see the :ref:`references` section. - -Some examples are listed below. Note that these commands are issued from Salt master -with *root* user. - - -#. View the IPs of all the components - - .. code-block:: bash - - root@cfg01:~$ salt "*" network.ip_addrs - cfg01.baremetal-mcp-ocata-odl-ha.local: - - 10.20.0.2 - - 172.16.10.100 - mas01.baremetal-mcp-ocata-odl-ha.local: - - 10.20.0.3 - - 172.16.10.3 - - 192.168.11.3 - ......................... - - -#. View the interfaces of all the components and put the output in a file with yaml format - - .. code-block:: bash - - root@cfg01:~$ salt "*" network.interfaces --out yaml --output-file interfaces.yaml - root@cfg01:~# cat interfaces.yaml - cfg01.baremetal-mcp-ocata-odl-ha.local: - enp1s0: - hwaddr: 52:54:00:72:77:12 - inet: - - address: 10.20.0.2 - broadcast: 10.20.0.255 - label: enp1s0 - netmask: 255.255.255.0 - inet6: - - address: fe80::5054:ff:fe72:7712 - prefixlen: '64' - scope: link - up: true - ......................... - - -#. View installed packages in MaaS node - - .. code-block:: bash - - root@cfg01:~# salt "mas*" pkg.list_pkgs - mas01.baremetal-mcp-ocata-odl-ha.local: - ---------- - accountsservice: - 0.6.40-2ubuntu11.3 - acl: - 2.2.52-3 - acpid: - 1:2.0.26-1ubuntu2 - adduser: - 3.113+nmu3ubuntu4 - anerd: - 1 - ......................... - - -#. Execute any linux command on all nodes (list the content of */var/log* in this example) - - .. code-block:: bash - - root@cfg01:~# salt "*" cmd.run 'ls /var/log' - cfg01.baremetal-mcp-ocata-odl-ha.local: - alternatives.log - apt - auth.log - boot.log - btmp - cloud-init-output.log - cloud-init.log - ......................... - - -#. Execute any linux command on nodes using compound queries filter - - .. code-block:: bash - - root@cfg01:~# salt -C '* and cfg01*' cmd.run 'ls /var/log' - cfg01.baremetal-mcp-ocata-odl-ha.local: - alternatives.log - apt - auth.log - boot.log - btmp - cloud-init-output.log - cloud-init.log - ......................... - - -#. Execute any linux command on nodes using role filter - - .. code-block:: bash - - root@cfg01:~# salt -I 'nova:compute' cmd.run 'ls /var/log' - cmp001.baremetal-mcp-ocata-odl-ha.local: - alternatives.log - apache2 - apt - auth.log - btmp - ceilometer - cinder - cloud-init-output.log - cloud-init.log - ......................... - - - -=================== -Accessing Openstack -=================== - -Once the deployment is complete, Openstack CLI is accessible from controller VMs (ctl01..03). -Openstack credentials are at */root/keystonercv3*. - - .. code-block:: bash - - root@ctl01:~# source keystonercv3 - root@ctl01:~# openstack image list - +--------------------------------------+-----------------------------------------------+--------+ - | ID | Name | Status | - +======================================+===============================================+========+ - | 152930bf-5fd5-49c2-b3a1-cae14973f35f | CirrosImage | active | - | 7b99a779-78e4-45f3-9905-64ae453e3dcb | Ubuntu16.04 | active | - +--------------------------------------+-----------------------------------------------+--------+ - - -The OpenStack Dashboard, Horizon is available at http://<controller VIP>:8078, e.g. http://10.16.0.101:8078. -The administrator credentials are *admin*/*opnfv_secret*. - -.. figure:: img/horizon_login.png - - -A full list of IPs/services is available at <proxy public VIP>:8090 for baremetal deploys. - -.. figure:: img/salt_services_ip.png - -For Virtual deploys, the most commonly used IPs are in the table below. - -+-----------+--------------+---------------+ -| Component | IP | Default value | -+===========+==============+===============+ -| gtw01 | x.y.z.110 | 172.16.10.110 | -+-----------+--------------+---------------+ -| ctl01 | x.y.z.100 | 172.16.10.100 | -+-----------+--------------+---------------+ -| cmp001 | x.y.z.105 | 172.16.10.105 | -+-----------+--------------+---------------+ -| cmp002 | x.y.z.106 | 172.16.10.106 | -+-----------+--------------+---------------+ - - -============================= -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: - -========== -References -========== - -1) `Installation instructions <http://docs.opnfv.org/en/stable-euphrates/submodules/fuel/docs/release/installation/installation.instruction.html>`_ -2) `Saltstack Documentation <https://docs.saltstack.com/en/latest/topics>`_ -3) `Saltstack Formulas <http://salt-formulas.readthedocs.io/en/latest/develop/overview-reclass.html>`_ - - +Armband project aims to integrate and test all aspects of OPNFV releases +on ARM-based servers. The goal is to replicate all OPNFV software build, +continuous integration, lab provisioning, and testing processes of each +standard release OPNFV, such that the release can be available on both +Intel Architecture-based and ARM Architecture-based servers. + +The armband repo contains the patches necessary for Fuel installer to run on +aarch64 hardware. For more information on how to use Fuel@OPNFV - Fraser +release - after it was deployed check +:ref:`fuel-release-userguide-label` 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 3c4420f5..00000000 --- a/patches/opnfv-fuel/0001-baremetal-Add-Armband-Openstack-repos-to-kvm-cmp.patch +++ /dev/null @@ -1,50 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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 one APT repository that should be added to all -baremetal nodes explicitly (the other Armband repos are now part of -`linux.system.repo.mcp.openstack` or `linux.system.repo.mcp.extra`): -- linux.system.repo.mcp.armband; - -This repo is pre-installed for all infrastructure VMs, so we only -handle it via Salt for baremetal kvm* and cmp* nodes. - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml | 1 + - .../classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml -index dcd78a2..a604d0a 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml -@@ -7,6 +7,7 @@ - ############################################################################## - --- - classes: -+ - system.linux.system.repo.mcp.armband - - system.linux.system.repo.glusterfs - - service.keepalived.cluster.single - - system.glusterfs.server.volume.glance -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml -index 60a01a8..a2c6fa0 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml -@@ -7,6 +7,7 @@ - ############################################################################## - --- - classes: -+ - system.linux.system.repo.mcp.armband - - system.linux.system.repo.glusterfs - - system.linux.storage.loopback - - system.glusterfs.client.cluster 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 d80a832e..b98bdc95 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 @@ -13,8 +13,6 @@ Subject: [PATCH] salt-formulas: Add & enable armband formula - prereq: install qemu-efi; - prereq: install vgabios; - prereq: fix missing link for vgabios binary blob; -- nova patch: Add video type virtio for AArch64 (backport from [1]); -- 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); - nova compute conf: virt_type=qemu (only for virtual deploys); @@ -26,16 +24,16 @@ 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_ha | 1 + - mcp/config/states/openstack_noha | 2 + - mcp/config/states/virtual_control_plane | 1 + - .../armband/files/nova-libvirt-aarch64-rollup.diff | 76 ++++++++++++++++++++++ - mcp/salt-formulas/armband/init.sls | 7 ++ - mcp/salt-formulas/armband/nova_config.sls | 35 ++++++++++ - mcp/salt-formulas/armband/nova_libvirt.sls | 7 ++ - mcp/salt-formulas/armband/qemu_efi.sls | 2 + - mcp/salt-formulas/armband/vgabios.sls | 7 ++ - 9 files changed, 138 insertions(+) + mcp/config/states/openstack_ha | 1 + + mcp/config/states/openstack_noha | 2 ++ + mcp/config/states/virtual_control_plane | 1 + + .../files/nova-libvirt-aarch64-rollup.diff | 27 ++++++++++++++ + mcp/salt-formulas/armband/init.sls | 7 ++++ + mcp/salt-formulas/armband/nova_config.sls | 35 +++++++++++++++++++ + mcp/salt-formulas/armband/nova_libvirt.sls | 7 ++++ + mcp/salt-formulas/armband/qemu_efi.sls | 2 ++ + mcp/salt-formulas/armband/vgabios.sls | 7 ++++ + 9 files changed, 89 insertions(+) create mode 100644 mcp/salt-formulas/armband/files/nova-libvirt-aarch64-rollup.diff create mode 100644 mcp/salt-formulas/armband/init.sls create mode 100644 mcp/salt-formulas/armband/nova_config.sls @@ -44,7 +42,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> create mode 100644 mcp/salt-formulas/armband/vgabios.sls diff --git a/mcp/config/states/openstack_ha b/mcp/config/states/openstack_ha -index 0bbf7cd..c49b27d 100755 +index 73c44bb6..4ac5d6d5 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 @@ -53,23 +51,20 @@ index 0bbf7cd..c49b27d 100755 salt -I 'nova:compute' state.sls nova +wait_for 5.0 "salt -I 'nova:compute' state.sls armband" - salt -C 'I@mongodb:server and *01*' state.sls mongodb || true - wait_for 10 "salt -C 'I@mongodb:server and *01*' cmd.run 'mongo localhost:27017/admin'" + salt -I 'redis:cluster:role:master' state.sls redis + salt -I 'redis:server' state.sls redis diff --git a/mcp/config/states/openstack_noha b/mcp/config/states/openstack_noha -index 9fc30bb..998fc6b 100755 +index 70db238b..52d643df 100755 --- a/mcp/config/states/openstack_noha +++ b/mcp/config/states/openstack_noha -@@ -52,6 +52,8 @@ salt -I 'ceilometer:agent' state.sls ceilometer +@@ -54,3 +54,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 + - # workaround for the pike horizon is missing css, FUEL-324 - salt -I 'horizon:server' file.symlink \ - /var/lib/openstack-dashboard/static \ ++salt -I 'nova:compute' state.sls armband diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane -index 338c447..009eeba 100755 +index 18e6d1cd..64d73953 100755 --- a/mcp/config/states/virtual_control_plane +++ b/mcp/config/states/virtual_control_plane @@ -27,6 +27,7 @@ if [ "${ERASE_ENV}" -eq 1 ]; then @@ -82,89 +77,40 @@ index 338c447..009eeba 100755 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..36ddf72 +index 00000000..1ecbf297 --- /dev/null +++ b/mcp/salt-formulas/armband/files/nova-libvirt-aarch64-rollup.diff -@@ -0,0 +1,76 @@ -+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Date: Thu, 24 Aug 2017 10:57:28 +0200 -+Subject: [PATCH] libvirt: AArch64: ACPI depends on AAVMF +@@ -0,0 +1,27 @@ ++From: Charalampos Kominos <Charalampos.Kominos@enea.com> ++Date: Wed, 2 May 2018 14:20:47 +0200 ++Subject: [PATCH] Allow libvirt to honor root device naming + -+On AArch64, ACPI should be added to domain XML only if guest UEFI -+(AAVMF) is also used. ++Current behaviour in upstream nova is for rootfs to be in /dev/vda ++which is the default behaviour when using virtio driver. However when ++other devices are requested either by glance or by CLI, nova ignores ++that naming and still tries to attach to vda which fails. + -+[ Alexandru.Avadanii@enea.com ] -+- pike rebase: minor context adj ++Manually applied in https://review.openstack.org/#/c/214314/ + -+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Signed-off-by: Ciprian Barbu <ciprian.barbu@enea.com> ++JIRA: ARMBAND-376 + ++Signed-off-by: Charalampos Kominos <charalampos.kominos@enea.com> +--- + -+diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py +--- a/nova/virt/libvirt/driver.py ++++ b/nova/virt/libvirt/driver.py -+@@ -4314,7 +4314,10 @@ -+ -+ if (virt_type not in ("lxc", "uml", "parallels", "xen") or -+ (virt_type == "xen" and guest.os_type == fields.VMMode.HVM)): -+- guest.features.append(vconfig.LibvirtConfigGuestFeatureACPI()) -++ guestarch = libvirt_utils.get_arch(image_meta) -++ if (guestarch not in (fields.Architecture.ARMV7, fields.Architecture.AARCH64) or -++ image_meta.properties.get('hw_firmware_type') == 'uefi'): -++ guest.features.append(vconfig.LibvirtConfigGuestFeatureACPI()) -+ guest.features.append(vconfig.LibvirtConfigGuestFeatureAPIC()) -+ -+ if (virt_type in ("qemu", "kvm") and -+-- -+ -+From f0f09530ee9169eb29bc28d4f118676d7dc6640e Mon Sep 17 00:00:00 2001 -+From: Kevin Zhao <kevin.zhao@arm.com> -+Date: Tue, 15 Aug 2017 09:52:09 +0000 -+Subject: [PATCH] Add video type virtio for AArch64 -+ -+Currently only "virtio" type is supported on AArch64, and the -+other "virrus", "qxl" and "vga" don't work on AArch64 according to -+libvirt upstream: -+https://www.redhat.com/archives/libvir-list/2016-September/msg00546.html -+Then this patch adds the virtio for AArch64 and tweaks the related test cases. -+ -+Closes-bug: #1710766 -+ -+[ Alexandru.Avadanii@enea.com ] -+Dropped test changes so it applies cleanly on Newton without more backports. -+ -+Change-Id: Iba8a1e671f2b5759b3d9178aa1871d0cf888b26b -+Signed-off-by: Kevin Zhao <kevin.zhao@arm.com> -+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+--- -+ -+--- a/nova/virt/libvirt/driver.py -++++ b/nova/virt/libvirt/driver.py -+@@ -4342,7 +4342,8 @@ def _check_number_of_serial_console(self, num_ports): -+ allowed=ALLOWED_QEMU_SERIAL_PORTS, virt_type=virt_type) -+ -+ def _add_video_driver(self, guest, image_meta, flavor): -+- VALID_VIDEO_DEVICES = ("vga", "cirrus", "vmvga", "xen", "qxl") -++ VALID_VIDEO_DEVICES = ("vga", "cirrus", "vmvga", -++ "xen", "qxl", "virtio") -+ video = vconfig.LibvirtConfigGuestVideo() -+ # NOTE(ldbragst): The following logic sets the video.type -+ # depending on supported defaults given the architecture, -+@@ -4360,6 +4361,10 @@ def _add_video_driver(self, guest, image_meta, flavor): -+ # NOTE(ldbragst): PowerKVM doesn't support 'cirrus' be default -+ # so use 'vga' instead when running on Power hardware. -+ video.type = 'vga' -++ elif guestarch in (fields.Architecture.AARCH64): -++ # NOTE(kevinz): Only virtio device type is supported by AARCH64 -++ # so use 'virtio' instead when running on AArch64 hardware. -++ video.type = 'virtio' -+ elif CONF.spice.enabled: -+ video.type = 'qxl' -+ if image_meta.properties.get('hw_video_model'): ++@@ -8257,6 +8257,8 @@ ++ "Ignoring supplied device name: %(device_name)s. " ++ "Libvirt can't honour user-supplied dev names", ++ {'device_name': bdm.device_name}, instance=instance) +++ if instance.root_device_name == bdm.device_name: +++ instance.root_device_name = None ++ bdm.device_name = None ++ block_device_info = driver.get_block_device_info(instance, ++ block_device_mapping) diff --git a/mcp/salt-formulas/armband/init.sls b/mcp/salt-formulas/armband/init.sls new file mode 100644 -index 0000000..8a8cf2a +index 00000000..8a8cf2ab --- /dev/null +++ b/mcp/salt-formulas/armband/init.sls @@ -0,0 +1,7 @@ @@ -177,7 +123,7 @@ index 0000000..8a8cf2a + {%- endif %} diff --git a/mcp/salt-formulas/armband/nova_config.sls b/mcp/salt-formulas/armband/nova_config.sls new file mode 100644 -index 0000000..31fa031 +index 00000000..31fa031a --- /dev/null +++ b/mcp/salt-formulas/armband/nova_config.sls @@ -0,0 +1,35 @@ @@ -218,7 +164,7 @@ index 0000000..31fa031 + - name: "service nova-compute restart" diff --git a/mcp/salt-formulas/armband/nova_libvirt.sls b/mcp/salt-formulas/armband/nova_libvirt.sls new file mode 100644 -index 0000000..bc2cbda +index 00000000..ff93db80 --- /dev/null +++ b/mcp/salt-formulas/armband/nova_libvirt.sls @@ -0,0 +1,7 @@ @@ -228,10 +174,10 @@ index 0000000..bc2cbda + - source: salt://armband/files/nova-libvirt-aarch64-rollup.diff + - hash: False + - options: '-p1' -+ - unless: 'test -f /var/cache/salt/minion/files/base/armband/files/nova-libvirt-aarch64-rollup.diff && cd /usr/lib/python2.7/dist-packages && patch -p1 -R --dry-run /var/cache/salt/minion/files/base/armband/files/nova-libvirt-aarch64-rollup.diff' ++ - unless: 'test -f /var/cache/salt/minion/files/base/armband/files/nova-libvirt-aarch64-rollup.diff && cd /usr/lib/python2.7/dist-packages && patch -p1 -R --dry-run -r - < /var/cache/salt/minion/files/base/armband/files/nova-libvirt-aarch64-rollup.diff' diff --git a/mcp/salt-formulas/armband/qemu_efi.sls b/mcp/salt-formulas/armband/qemu_efi.sls new file mode 100644 -index 0000000..c697dae +index 00000000..c697dae9 --- /dev/null +++ b/mcp/salt-formulas/armband/qemu_efi.sls @@ -0,0 +1,2 @@ @@ -239,7 +185,7 @@ index 0000000..c697dae + pkg.installed diff --git a/mcp/salt-formulas/armband/vgabios.sls b/mcp/salt-formulas/armband/vgabios.sls new file mode 100644 -index 0000000..500c2bc +index 00000000..500c2bcf --- /dev/null +++ b/mcp/salt-formulas/armband/vgabios.sls @@ -0,0 +1,7 @@ diff --git a/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch b/patches/opnfv-fuel/0002-mcp-salt-formulas-armband-Extend-libvirt_domain.patch index 5c005f09..086cfcab 100644 --- a/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch +++ b/patches/opnfv-fuel/0002-mcp-salt-formulas-armband-Extend-libvirt_domain.patch @@ -33,20 +33,20 @@ 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/baremetal_init | 1 + - .../armband/files/salt-minion-aarch64-rollup.diff | 101 +++++++++++++++++++++ - mcp/salt-formulas/armband/salt_minion.sls | 7 ++ + mcp/config/states/baremetal_init | 1 + + .../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/baremetal_init b/mcp/config/states/baremetal_init -index cd254dd..fb20a81 100755 +index 6a44b788..6f935445 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' +@@ -31,6 +31,7 @@ wait_for 5.0 "salt -C 'kvm* or cmp*' state.apply opnfv.route_wrapper" + wait_for 5.0 "salt -C 'cmp*' state.apply linux.network" + wait_for 30.0 "salt -C 'kvm* or cmp*' test.ping" +salt -C 'kvm*' state.apply armband.salt_minion salt -C 'kvm* or cmp*' system.reboot @@ -54,7 +54,7 @@ index cd254dd..fb20a81 100755 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 +index 00000000..9e74c240 --- /dev/null +++ b/mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff @@ -0,0 +1,101 @@ @@ -161,7 +161,7 @@ index 0000000..9e74c24 + def purge(vm_, dirs=False): diff --git a/mcp/salt-formulas/armband/salt_minion.sls b/mcp/salt-formulas/armband/salt_minion.sls new file mode 100644 -index 0000000..9cce636 +index 00000000..cc5c9242 --- /dev/null +++ b/mcp/salt-formulas/armband/salt_minion.sls @@ -0,0 +1,7 @@ @@ -171,4 +171,4 @@ index 0000000..9cce636 + - source: salt://armband/files/salt-minion-aarch64-rollup.diff + - hash: False + - options: '-p1' -+ - unless: 'test -f /var/cache/salt/minion/files/base/armband/files/salt-minion-aarch64-rollup.diff && cd /usr/lib/python2.7/dist-packages && patch -p1 -R --dry-run /var/cache/salt/minion/files/base/armband/files/salt-minion-aarch64-rollup.diff' ++ - unless: 'test -f /var/cache/salt/minion/files/base/armband/files/salt-minion-aarch64-rollup.diff && cd /usr/lib/python2.7/dist-packages && patch -p1 -R --dry-run -r - < /var/cache/salt/minion/files/base/armband/files/salt-minion-aarch64-rollup.diff' diff --git a/patches/opnfv-fuel/0003-network-public-Use-arm-virtual2-POD-config.patch b/patches/opnfv-fuel/0003-network-public-Use-arm-virtual2-POD-config.patch deleted file mode 100644 index 02a079f0..00000000 --- a/patches/opnfv-fuel/0003-network-public-Use-arm-virtual2-POD-config.patch +++ /dev/null @@ -1,131 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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, 18 Jul 2017 19:17:24 +0200 -Subject: [PATCH] network: public: Use arm-virtual2 POD config - -grep -e "10\.16\.0\." -R . -l | \ - xargs sed -i \ - -e 's/10\.16\.0\./10.0.9./g' \ - -e 's/10\.0\.9\.254/10.0.9.200/g' \ - -e 's/10\.0\.9\.1/10.0.9.254/g' - -NOTE: This should be converted into a dynamic configuration read from -the universal POD descriptor in pharos, once that is ready. - -Until then, just align the public network configuration used by the -virtual POD with the Enea lab configuration specific to arm-virtual2 -(i.e. public network on 10.0.9.0/24). - -NOTE: Replace the gateway at 10.16.0.1 (now 10.0.9.1) with the same -IP address as our lab's gateway (10.0.9.254), to keep both possible -network layouts in sync (using all virtual networks created via -virsh, respectively our lab's static config). -This will ensure deploys continue to work in both enviroments. - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/config/states/networks | 8 ++++---- - .../classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml | 4 ++-- - .../cluster/virtual-mcp-pike-common-noha/openstack_init.yml | 2 +- - .../classes/cluster/virtual-mcp-pike-odl-noha/infra/config.yml | 2 +- - .../cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/config.yml | 2 +- - .../classes/cluster/virtual-mcp-pike-ovs-noha/infra/config.yml | 2 +- - mcp/scripts/net_public.xml | 2 +- - 7 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/mcp/config/states/networks b/mcp/config/states/networks -index 222a072..9bbc0ce 100755 ---- a/mcp/config/states/networks -+++ b/mcp/config/states/networks -@@ -17,10 +17,10 @@ POOL_START_IP=$(get_nova_compute_pillar_data 'opnfv_net_public_pool_start') - POOL_END_IP=$(get_nova_compute_pillar_data 'opnfv_net_public_pool_end') - - # Default values --PUBLIC_NET="${PUBLIC_NET:-10.16.0.0/24}" --PUBLIC_NET_GATEWAY="${PUBLIC_NET_GATEWAY:-10.16.0.1}" --POOL_START_IP="${POOL_START_IP:-10.16.0.130}" --POOL_END_IP="${POOL_END_IP:-10.16.0.254}" -+PUBLIC_NET="${PUBLIC_NET:-10.0.9.0/24}" -+PUBLIC_NET_GATEWAY="${PUBLIC_NET_GATEWAY:-10.0.9.254}" -+POOL_START_IP="${POOL_START_IP:-10.0.9.130}" -+POOL_END_IP="${POOL_END_IP:-10.0.9.200}" - - # Print openstack status and setup network - salt -C 'I@nova:controller and *01*' cmd.run ". /root/keystonercv3; \ -diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml -index 576925e..8530b10 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml -@@ -61,9 +61,9 @@ parameters: - params: - single_address: 172.16.10.105 - tenant_address: 10.1.0.105 -- external_address: 10.16.0.105 -+ external_address: 10.0.9.105 - openstack_compute_node02: - params: - single_address: 172.16.10.106 - tenant_address: 10.1.0.106 -- external_address: 10.16.0.106 -+ external_address: 10.0.9.106 -diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml -index d5606b5..508d5e1 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml -@@ -14,7 +14,7 @@ parameters: - openstack_region: RegionOne - admin_email: root@localhost - cluster_public_protocol: http -- cluster_public_host: 10.16.0.101 -+ cluster_public_host: 10.0.9.101 - neutron_public_protocol: http - neutron_control_dvr: 'False' - neutron_l3_ha: 'False' -diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/config.yml -index 8e38ff8..d7bf017 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/config.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/config.yml -@@ -24,4 +24,4 @@ parameters: - openstack_gateway_node01: - params: - 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-pike-ovs-dpdk-noha/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/config.yml -index abe13ef..ba3a6fc 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/config.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/config.yml -@@ -25,4 +25,4 @@ parameters: - openstack_gateway_node01: - params: - 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-pike-ovs-noha/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/infra/config.yml -index 66c2468..7326295 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/infra/config.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/infra/config.yml -@@ -17,4 +17,4 @@ parameters: - openstack_gateway_node01: - params: - tenant_address: 10.1.0.110 -- external_address: 10.16.0.110 -+ external_address: 10.0.9.110 -diff --git a/mcp/scripts/net_public.xml b/mcp/scripts/net_public.xml -index d6df4aa..87f3146 100644 ---- a/mcp/scripts/net_public.xml -+++ b/mcp/scripts/net_public.xml -@@ -10,5 +10,5 @@ - <name>public</name> - <bridge name="public"/> - <forward mode="nat"/> -- <ip address="10.16.0.1" netmask="255.255.255.0" /> -+ <ip address="10.0.9.254" netmask="255.255.255.0" /> - </network> diff --git a/patches/opnfv-fuel/0008-virtng.py-virt.sls-Extend-libvirt_domain.patch b/patches/opnfv-fuel/0003-virtng.py-virt.sls-Extend-libvirt_domain.patch index d28cb61b..11abe1dd 100644 --- a/patches/opnfv-fuel/0008-virtng.py-virt.sls-Extend-libvirt_domain.patch +++ b/patches/opnfv-fuel/0003-virtng.py-virt.sls-Extend-libvirt_domain.patch @@ -23,18 +23,18 @@ specific values. 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-pike-common-ha/infra/kvm.yml | 15 ++++++ - .../baremetal-mcp-pike-odl-ha/infra/kvm.yml | 3 ++ + ...-virtng-module-Extend-libvirt_domain.patch | 54 +++++++++++++++++++ + ...t-control-virt-Extend-libvirt_domain.patch | 51 ++++++++++++++++++ + mcp/patches/patches.list | 2 + + .../cluster/mcp-common-ha/infra/kvm.yml | 15 ++++++ + .../cluster/mcp-odl-ha/infra/kvm.yml.j2 | 3 ++ 5 files changed, 125 insertions(+) create mode 100644 mcp/patches/0103-virtng-module-Extend-libvirt_domain.patch create mode 100644 mcp/patches/0104-salt-control-virt-Extend-libvirt_domain.patch diff --git a/mcp/patches/0103-virtng-module-Extend-libvirt_domain.patch b/mcp/patches/0103-virtng-module-Extend-libvirt_domain.patch new file mode 100644 -index 0000000..706b67d +index 00000000..706b67da --- /dev/null +++ b/mcp/patches/0103-virtng-module-Extend-libvirt_domain.patch @@ -0,0 +1,54 @@ @@ -94,7 +94,7 @@ index 0000000..706b67d + for dev in kwargs['boot_dev'].split(): diff --git a/mcp/patches/0104-salt-control-virt-Extend-libvirt_domain.patch b/mcp/patches/0104-salt-control-virt-Extend-libvirt_domain.patch new file mode 100644 -index 0000000..78eb0bf +index 00000000..78eb0bff --- /dev/null +++ b/mcp/patches/0104-salt-control-virt-Extend-libvirt_domain.patch @@ -0,0 +1,51 @@ @@ -150,20 +150,20 @@ index 0000000..78eb0bf + + #salt_control_seed_{{ cluster_name }}_{{ node_name }}: diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list -index 01e3224..e17a329 100644 +index a17fd694..6dd688ee 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list -@@ -19,3 +19,5 @@ - /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch - /usr/share/salt-formulas/env: 0013-dpdk-Support-ovs-bridge-tagging.patch - /usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch +@@ -11,3 +11,5 @@ + /usr/share/salt-formulas/env: 0010-maas-region-allow-timeout-override.patch + /usr/share/salt-formulas/env: 0011-system.repo-Debian-Add-keyserver-proxy-support.patch + /usr/share/salt-formulas/env: 0015-Set-ovs-bridges-as-L3-interfaces.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-pike-common-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml -index a604d0a..166b368 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml -@@ -50,21 +50,33 @@ parameters: +diff --git a/mcp/reclass/classes/cluster/mcp-common-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/mcp-common-ha/infra/kvm.yml +index 868f324f..73875b87 100644 +--- a/mcp/reclass/classes/cluster/mcp-common-ha/infra/kvm.yml ++++ b/mcp/reclass/classes/cluster/mcp-common-ha/infra/kvm.yml +@@ -52,21 +52,33 @@ parameters: openstack.control: cpu: 4 ram: 12288 @@ -197,7 +197,7 @@ index a604d0a..166b368 100644 disk_profile: xxlarge net_profile: default # stacklight.log: -@@ -85,6 +97,9 @@ parameters: +@@ -87,6 +99,9 @@ parameters: openstack.proxy: cpu: 2 ram: 2048 @@ -207,14 +207,14 @@ index a604d0a..166b368 100644 disk_profile: small net_profile: default_ext cluster: -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/kvm.yml -index bbc80e2..8efebc7 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/kvm.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/kvm.yml -@@ -17,6 +17,9 @@ parameters: +diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/infra/kvm.yml.j2 b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/kvm.yml.j2 +index ab0da39b..f64ed46a 100644 +--- a/mcp/reclass/classes/cluster/mcp-odl-ha/infra/kvm.yml.j2 ++++ b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/kvm.yml.j2 +@@ -19,6 +19,9 @@ parameters: opendaylight.server: cpu: 4 - ram: 6144 + ram: 8192 + hw_firmware_type: uefi + virt_machine_model: virt + cpu_model: host-passthrough diff --git a/patches/opnfv-fuel/0012-Add-opnfv-user-to-the-deployment.patch b/patches/opnfv-fuel/0004-Add-opnfv-user-to-the-deployment.patch index 0d24d07b..f158ed40 100644 --- a/patches/opnfv-fuel/0012-Add-opnfv-user-to-the-deployment.patch +++ b/patches/opnfv-fuel/0004-Add-opnfv-user-to-the-deployment.patch @@ -14,52 +14,54 @@ 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/baremetal_init | 1 + - mcp/config/states/virtual_control_plane | 1 + - mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml | 4 ++++ - mcp/salt-formulas/opnfv/adduser.sls | 7 +++++++ - 4 files changed, 13 insertions(+) + mcp/config/states/baremetal_init | 1 + + mcp/config/states/virtual_control_plane | 1 + + .../classes/cluster/all-mcp-arch-common/init.yml.j2 | 3 +++ + mcp/salt-formulas/opnfv/adduser.sls | 7 +++++++ + 4 files changed, 12 insertions(+) create mode 100644 mcp/salt-formulas/opnfv/adduser.sls diff --git a/mcp/config/states/baremetal_init b/mcp/config/states/baremetal_init -index fb20a81..a174640 100755 +index 6f935445..f685ab87 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 'kvm* or cmp*' pkg.install bridge-utils +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 'kvm*' state.apply linux.network,linux.system.kernel + wait_for 5.0 "salt -C 'kvm* or cmp*' state.apply salt.minion" + wait_for 5.0 "salt -C 'cmp*' state.apply linux.system" diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane -index 009eeba..9349e7e 100755 +index 64d73953..d8c4e776 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 +@@ -39,6 +39,7 @@ vcp_nodes=$(salt --out yaml 'kvm01*' pillar.get salt:control:cluster:internal:no + # Check all vcp nodes are available + wait_for 25.0 "(for n in ${vcp_nodes}; do salt \${n} test.ping 2>/dev/null || exit; 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-arch-common/init.yml b/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml -index f09ee5d..39d550a 100644 ---- a/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml -+++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml -@@ -9,3 +9,7 @@ - classes: - - cluster.all-mcp-arch-common.arch +diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml.j2 b/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml.j2 +index 19475c71..1a3c84fc 100644 +--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml.j2 ++++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml.j2 +@@ -10,6 +10,9 @@ classes: - cluster.all-mcp-arch-common.opnfv -+parameters: -+ _param: + parameters: + _param: + opnfv_user_username: opnfv + opnfv_user_password: $1$5/pIEHT1$XFBhNWW4Q8gYd19hczgPF1 ++ + salt_control_trusty_image: '' # Dummy value, to keep reclass 1.5.2 happy + salt_control_xenial_image: salt://salt/files/control/images/base_image_opnfv_fuel_vcp.img + diff --git a/mcp/salt-formulas/opnfv/adduser.sls b/mcp/salt-formulas/opnfv/adduser.sls new file mode 100644 -index 0000000..78ef993 +index 00000000..78ef993d --- /dev/null +++ b/mcp/salt-formulas/opnfv/adduser.sls @@ -0,0 +1,7 @@ diff --git a/patches/opnfv-fuel/0004-mcp-salt-formulas-opendaylight-AArch64-leveldb.patch b/patches/opnfv-fuel/0004-mcp-salt-formulas-opendaylight-AArch64-leveldb.patch deleted file mode 100644 index 5af328ea..00000000 --- a/patches/opnfv-fuel/0004-mcp-salt-formulas-opendaylight-AArch64-leveldb.patch +++ /dev/null @@ -1,48 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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: Thu, 27 Jul 2017 23:42:29 +0200 -Subject: [PATCH] mcp: salt-formulas: opendaylight: AArch64 leveldb - -ODL requires native leveldbjni support on architectures like AArch64. -Armband provides a Debian package that provides exactly that, -specially tailored to be applied on top of upstream Opendaylight -Debian package. - -Install <armband-odl-leveldb-fix> as part of the existing Opendaylight -salt-formula (and not as part of Armband's separate salt-formula, like -previous fixups). - -Some dependencies are not self-contained in this formula yet, and -should be handled before upstreaming this patch: -- Armband DEB repository (mcp-repos) is added by "openstack" state; -- only Debian systems are supported (no equivalent RPM provided); -- only systemd is supported (unlikely to change); - -JIRA: https://jira.opnfv.org/browse/ARMBAND-283 - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/salt-formulas/opendaylight/server.sls | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/mcp/salt-formulas/opendaylight/server.sls b/mcp/salt-formulas/opendaylight/server.sls -index f953cdd..f966208 100644 ---- a/mcp/salt-formulas/opendaylight/server.sls -+++ b/mcp/salt-formulas/opendaylight/server.sls -@@ -91,4 +91,9 @@ opendaylight: - - service: opendaylight - {%- endif %} - -+opendaylight_aarch64_leveldbjni: -+ pkg.installed: -+ {% if grains['cpuarch'] == 'aarch64'%} -+ - name: armband-odl-leveldb-fix -+ {% endif %} - {%- endif %} diff --git a/patches/opnfv-fuel/0005-Set-volume-name-in-source-file-to-sdX.patch b/patches/opnfv-fuel/0005-Set-volume-name-in-source-file-to-sdX.patch new file mode 100644 index 00000000..0cfae945 --- /dev/null +++ b/patches/opnfv-fuel/0005-Set-volume-name-in-source-file-to-sdX.patch @@ -0,0 +1,44 @@ +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +: Copyright (c) 2018 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: Charalampos Kominos <Charalampos.Kominos@enea.com> +Date: Fri, 27 Apr 2018 14:54:22 +0200 +Subject: [PATCH] Set volume name in source file to sdX + +Signed-off-by: Charalampos Kominos <Charalampos.Kominos@enea.com> +--- + .../classes/cluster/mcp-common-ha/openstack_control.yml.j2 | 2 +- + .../classes/cluster/mcp-common-noha/openstack_control.yml | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_control.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_control.yml.j2 +index 0189e038..ea758c4b 100644 +--- a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_control.yml.j2 ++++ b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_control.yml.j2 +@@ -84,7 +84,7 @@ parameters: + <<: *db_conn_recycle_time + cacert: /etc/ssl/certs/mcp_os_cacert + openrc_extra: +- volume_device_name: vdc ++ volume_device_name: sdc + glance: + server: + <<: *db_conn_recycle_time +diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml +index f458281c..e17a5f16 100644 +--- a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml ++++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml +@@ -72,7 +72,7 @@ parameters: + server: + admin_email: ${_param:admin_email} + openrc_extra: +- volume_device_name: vdc ++ volume_device_name: sdc + pkgs: + - keystone + - python-psycopg2 diff --git a/patches/opnfv-fuel/0005-maas-Add-curtin_userdata_arm64_generic_xenial.patch b/patches/opnfv-fuel/0005-maas-Add-curtin_userdata_arm64_generic_xenial.patch deleted file mode 100644 index 85ee6b56..00000000 --- a/patches/opnfv-fuel/0005-maas-Add-curtin_userdata_arm64_generic_xenial.patch +++ /dev/null @@ -1,164 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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, 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 common repo-comp for Pike, 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 +++++++++++++++++++++ - mcp/patches/patches.list | 1 + - .../baremetal-mcp-pike-common-ha/infra/maas.yml | 36 ++++++++++++++++++++++ - .../files/curtin_userdata_arm64_generic_xenial | 35 +++++++++++++++++++++ - 4 files changed, 107 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 - -diff --git a/mcp/patches/0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch b/mcp/patches/0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch -new file mode 100644 -index 0000000..0368937 ---- /dev/null -+++ b/mcp/patches/0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch -@@ -0,0 +1,35 @@ -+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Date: Sat, 5 Aug 2017 02:03:01 +0200 -+Subject: [PATCH] maas: Add curtin_userdata_arm64_generic_xenial -+ -+Based on curtin_userdata_amd64_generic_xenial, add new arm64 -+specific configuration file: -+- curtin_userdata_arm64_generic_xenial -+ -+Requires Salt repo key and repo URL to be defined via reclass. -+ -+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+--- -+ -+diff --git a/maas/region.sls b/maas/region.sls -+--- a/maas/region.sls -++++ b/maas/region.sls -+@@ -70,6 +70,18 @@ -+ - require: -+ - pkg: maas_region_packages -+ -++/etc/maas/preseeds/curtin_userdata_arm64_generic_xenial: -++ file.managed: -++ - source: salt://maas/files/curtin_userdata_arm64_generic_xenial -++ - template: jinja -++ - user: root -++ - group: root -++ - mode: 644 -++ - context: -++ salt_master_ip: {{ region.salt_master_ip }} -++ - require: -++ - pkg: maas_region_packages -++ -+ /root/.pgpass: -+ file.managed: -+ - source: salt://maas/files/pgpass -diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list -index 34d913a..01e3224 100644 ---- a/mcp/patches/patches.list -+++ b/mcp/patches/patches.list -@@ -18,3 +18,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-dpdk-Support-ovs-bridge-tagging.patch -+/usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml -index 3bf87dc..4954559 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml -@@ -40,6 +40,42 @@ parameters: - enable_third_party_drivers: true - network_discovery: 'enabled' - default_min_hwe_kernel: ${_param:hwe_kernel} -+ package_repositories: -+ armband: -+ name: armband -+ enabled: '1' -+ url: 'http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}' -+ distributions: '${_param:openstack_version}-armband' -+ 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 -+ 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----- -+ 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..15d10a4 ---- /dev/null -+++ b/mcp/salt-formulas/maas/files/curtin_userdata_arm64_generic_xenial -@@ -0,0 +1,35 @@ -+{%- from "maas/map.jinja" import cluster with context %} -+{% raw %} -+#cloud-config -+debconf_selections: -+ maas: | -+ {{for line in str(curtin_preseed).splitlines()}} -+ {{line}} -+ {{endfor}} -+{{if third_party_drivers and driver}} -+early_commands: -+ {{py: key_string = ''.join(['\\x%x' % x for x in map(ord, driver['key_binary'])])}} -+ driver_00_get_key: /bin/echo -en '{{key_string}}' > /tmp/maas-{{driver['package']}}.gpg -+ driver_01_add_key: ["apt-key", "add", "/tmp/maas-{{driver['package']}}.gpg"] -+ driver_02_add: ["add-apt-repository", "-y", "deb {{driver['repository']}} {{node.get_distro_series()}} main"] -+ driver_03_update_install: ["sh", "-c", "apt-get update --quiet && apt-get --assume-yes install {{driver['package']}}"] -+ driver_04_load: ["sh", "-c", "depmod && modprobe {{driver['module']}}"] -+{{endif}} -+late_commands: -+ maas: [wget, '--no-proxy', {{node_disable_pxe_url|escape.json}}, '--post-data', {{node_disable_pxe_data|escape.json}}, '-O', '/dev/null'] -+ 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}}"] -+ salt_03_hostname_get: ["curtin", "in-target", "--", "sh", "-c", "echo 'id: {% raw %}{{node.hostname}}{% endraw %}.{{pillar.linux.system.domain}}' >> /etc/salt/minion"] -+ salt_04_master: ["curtin", "in-target", "--", "sh", "-c", "echo 'master: {{ salt_master_ip }}' >> /etc/salt/minion"] -+{% raw %} -+{{if third_party_drivers and driver}} -+ driver_00_key_get: curtin in-target -- sh -c "/bin/echo -en '{{key_string}}' > /tmp/maas-{{driver['package']}}.gpg" -+ driver_02_key_add: ["curtin", "in-target", "--", "apt-key", "add", "/tmp/maas-{{driver['package']}}.gpg"] -+ driver_03_add: ["curtin", "in-target", "--", "add-apt-repository", "-y", "deb {{driver['repository']}} {{node.get_distro_series()}} main"] -+ driver_04_update_install: ["curtin", "in-target", "--", "apt-get", "update", "--quiet"] -+ driver_05_install: ["curtin", "in-target", "--", "apt-get", "-y", "install", "{{driver['package']}}"] -+ driver_06_depmod: ["curtin", "in-target", "--", "depmod"] -+ driver_07_update_initramfs: ["curtin", "in-target", "--", "update-initramfs", "-u"] -+{{endif}} -+{% endraw %} diff --git a/patches/opnfv-fuel/0006-maas-boot-resources-Add-arm64-architecture.patch b/patches/opnfv-fuel/0006-maas-boot-resources-Add-arm64-architecture.patch deleted file mode 100644 index 13be763b..00000000 --- a/patches/opnfv-fuel/0006-maas-boot-resources-Add-arm64-architecture.patch +++ /dev/null @@ -1,39 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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: Fri, 11 Aug 2017 00:07:29 +0200 -Subject: [PATCH] maas: boot-resources: Add arm64 architecture - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/patches/0003-maas-region-force-artifact-download.patch | 7 ++++++- - 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 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,20 @@ -+@@ -0,0 +1,25 @@ - +{%- from "maas/map.jinja" import region with context %} - +#!/bin/bash - +function wait_for { -@@ -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" -++maas opnfv boot-source-selection update 1 1 arches='amd64' arches='arm64' || exit 4 -++maas opnfv boot-resources import || exit 2 -++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/arm64" diff --git a/patches/opnfv-fuel/0009-seedng-module-Add-AArch64-repo.patch b/patches/opnfv-fuel/0009-seedng-module-Add-AArch64-repo.patch deleted file mode 100644 index c504ca2f..00000000 --- a/patches/opnfv-fuel/0009-seedng-module-Add-AArch64-repo.patch +++ /dev/null @@ -1,59 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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 e17a329..d066305 100644 ---- a/mcp/patches/patches.list -+++ b/mcp/patches/patches.list -@@ -21,3 +21,4 @@ - /usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.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/0010-aarch64-skip-configuration-of-hugepages.patch b/patches/opnfv-fuel/0010-aarch64-skip-configuration-of-hugepages.patch deleted file mode 100644 index 4aa8d570..00000000 --- a/patches/opnfv-fuel/0010-aarch64-skip-configuration-of-hugepages.patch +++ /dev/null @@ -1,36 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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: Charalampos Kominos <charalampos.kominos@enea.com> -Date: Thu, 24 Aug 2017 19:28:14 +0200 -Subject: [PATCH] aarch64: skip configuration of hugepages - -The reclass model contains instructions on how to setup nova.conf. -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> ---- - .../cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml -index a2c6fa0..9e8ad09 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml -@@ -12,8 +12,8 @@ classes: - - system.linux.storage.loopback - - system.glusterfs.client.cluster - - system.nova.compute.cluster -- - system.nova.compute.nfv.hugepages -- - system.nova.compute.nfv.cpu_pinning -+ # - system.nova.compute.nfv.hugepages -+ # - system.nova.compute.nfv.cpu_pinning - - system.neutron.gateway.cluster - - system.cinder.volume.single - - system.cinder.volume.backend.lvm diff --git a/patches/opnfv-fuel/0011-baremetal-virtual-Extend-arch-list-for-UCA-repo.patch b/patches/opnfv-fuel/0011-baremetal-virtual-Extend-arch-list-for-UCA-repo.patch deleted file mode 100644 index 356cc8ba..00000000 --- a/patches/opnfv-fuel/0011-baremetal-virtual-Extend-arch-list-for-UCA-repo.patch +++ /dev/null @@ -1,46 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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: Wed, 30 Aug 2017 22:15:07 +0200 -Subject: [PATCH] baremetal, virtual: Extend arch list for UCA repo - -JIRA: https://jira.opnfv.org/browse/ARMBAND-304 - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - .../classes/cluster/baremetal-mcp-pike-common-ha/openstack_init.yml | 2 +- - .../classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_init.yml -index 8f4edef..6a75099 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_init.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_init.yml -@@ -190,7 +190,7 @@ parameters: - repo: - uca: - source: "deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/${_param:openstack_version} main" -- architectures: amd64 -+ architectures: amd64,arm64 - key_id: EC4926EA - key_server: keyserver.ubuntu.com - kernel: -diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml -index 508d5e1..0ef0d4b 100644 ---- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml -+++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml -@@ -98,7 +98,7 @@ parameters: - repo: - uca: - source: "deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/${_param:openstack_version} main" -- architectures: amd64 -+ architectures: amd64,arm64 - key_id: EC4926EA - key_server: keyserver.ubuntu.com - kernel: diff --git a/patches/opnfv-fuel/0013-glusterfs-Use-3.12-for-AArch64.patch b/patches/opnfv-fuel/0013-glusterfs-Use-3.12-for-AArch64.patch deleted file mode 100644 index 86f02519..00000000 --- a/patches/opnfv-fuel/0013-glusterfs-Use-3.12-for-AArch64.patch +++ /dev/null @@ -1,61 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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: Fri, 15 Dec 2017 19:57:46 +0100 -Subject: [PATCH] glusterfs: Use 3.12 for AArch64 - -Currently, the glusterfs PPA for 3.13 does not have arm64 binaries, -so stick to 3.12 for now. - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml | 2 +- - .../classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml | 2 +- - .../classes/cluster/baremetal-mcp-pike-common-ha/openstack_control.yml | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml -index 166b368..0c7f0c3 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml -@@ -27,7 +27,7 @@ classes: - parameters: - _param: - linux_system_codename: xenial -- glusterfs_version: '3.13' -+ glusterfs_version: '3.12' - cluster_vip_address: ${_param:infra_kvm_address} - cluster_node01_address: ${_param:infra_kvm_node01_address} - cluster_node02_address: ${_param:infra_kvm_node02_address} -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml -index 9e8ad09..ddff3db 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml -@@ -36,7 +36,7 @@ parameters: - keepalived_vip_virtual_router_id: 69 - loopback_device_size: 20 - linux_system_codename: xenial -- glusterfs_version: '3.13' -+ glusterfs_version: '3.12' - glusterfs: - client: - volumes: -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control.yml -index cf09a41..0b6256f 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control.yml -@@ -38,7 +38,7 @@ parameters: - cluster_node03_hostname: ${_param:openstack_control_node03_hostname} - cluster_node03_address: ${_param:openstack_control_node03_address} - nova_vncproxy_url: https://${_param:cluster_public_host}:6080 -- glusterfs_version: '3.13' -+ glusterfs_version: '3.12' - heat: - server: - metadata: diff --git a/patches/opnfv-fuel/0014-Revert-Get-back-to-the-GA-kernel.patch b/patches/opnfv-fuel/0014-Revert-Get-back-to-the-GA-kernel.patch deleted file mode 100644 index cda9f2ae..00000000 --- a/patches/opnfv-fuel/0014-Revert-Get-back-to-the-GA-kernel.patch +++ /dev/null @@ -1,30 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2018 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, 22 Jan 2018 19:41:37 +0100 -Subject: [PATCH] Revert "Get back to the GA kernel" - -This reverts commit d06bcfb72c44b507c3efee4de00f415869f48450. ---- - mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml -index 4954559..d5528e3 100644 ---- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml -+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml -@@ -24,7 +24,7 @@ parameters: - maas_db_password: opnfv_secret - dns_server01: ${_param:opnfv_dns_server01} - single_address: ${_param:infra_maas_node01_deploy_address} -- hwe_kernel: 'ga-16.04' -+ hwe_kernel: 'hwe-16.04-edge' - maas: - region: - salt_master_ip: ${_param:reclass_config_master} diff --git a/patches/reclass-system-salt-model/0003-linux.system.repo.glusterfs-Add-arm64-arch.patch b/patches/reclass-system-salt-model/0001-linux.system.repo-Drop-arch-for-glusterfs-repo.patch index 65578721..1500f674 100644 --- a/patches/reclass-system-salt-model/0003-linux.system.repo.glusterfs-Add-arm64-arch.patch +++ b/patches/reclass-system-salt-model/0001-linux.system.repo-Drop-arch-for-glusterfs-repo.patch @@ -1,5 +1,5 @@ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2017 Enea AB and others. +: Copyright (c) 2018 Mirantis Inc., 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 @@ -8,22 +8,28 @@ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> Date: Sun, 26 Nov 2017 17:55:13 +0100 -Subject: [PATCH] linux.system.repo.glusterfs: Add arm64 arch +Subject: [PATCH] linux.system.repo: Drop arch for glusterfs repo + +Extending the arch list to 'amd64,arm64' would lead to doubling repo +metadata downloads on all archs, while dropping it will allow APT to +only download the repo metadata for the current system arch. + +To keep old behavior for amd64 and prevent multiple downloads, let's +just drop the 'architectures' field. Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> --- - linux/system/repo/glusterfs.yml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + linux/system/repo/glusterfs.yml | 1 - + 1 file changed, 1 deletion(-) diff --git a/linux/system/repo/glusterfs.yml b/linux/system/repo/glusterfs.yml -index fb331f0..ffad938 100644 +index fb331f0f..4646c075 100644 --- a/linux/system/repo/glusterfs.yml +++ b/linux/system/repo/glusterfs.yml -@@ -6,6 +6,6 @@ parameters: +@@ -6,6 +6,5 @@ parameters: repo: glusterfs-ppa: source: "deb http://ppa.launchpad.net/gluster/glusterfs-${_param:glusterfs_version}/ubuntu ${_param:linux_system_codename} main" - architectures: amd64 -+ architectures: amd64,arm64 key_id: 3FE869A9 key_server: keyserver.ubuntu.com diff --git a/patches/reclass-system-salt-model/0001-linux.system.repo.mcp-Add-Armband-repos.patch b/patches/reclass-system-salt-model/0001-linux.system.repo.mcp-Add-Armband-repos.patch deleted file mode 100644 index b4f76557..00000000 --- a/patches/reclass-system-salt-model/0001-linux.system.repo.mcp-Add-Armband-repos.patch +++ /dev/null @@ -1,81 +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, 10 Jul 2017 15:31:08 +0000 -Subject: [PATCH] linux.system.repo.mcp: Add Armband repos - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - linux/system/repo/mcp/armband.yml | 12 ++++++++++++ - linux/system/repo/mcp/extra.yml | 10 ++++++++++ - linux/system/repo/mcp/openstack.yml | 17 +++++++++++++++++ - 3 files changed, 39 insertions(+) - create mode 100644 linux/system/repo/mcp/armband.yml - -diff --git a/linux/system/repo/mcp/armband.yml b/linux/system/repo/mcp/armband.yml -new file mode 100644 -index 0000000..d1fa43a ---- /dev/null -+++ b/linux/system/repo/mcp/armband.yml -@@ -0,0 +1,12 @@ -+parameters: -+ linux: -+ system: -+ repo: -+ armband: -+ source: "deb http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version}-armband main" -+ architectures: arm64 -+ key_url: "https://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}/archive-mcp${_param:openstack_version}.key" -+ pin: -+ - pin: 'release l=${_param:openstack_version}-armband' -+ priority: 1100 -+ package: '*' -diff --git a/linux/system/repo/mcp/extra.yml b/linux/system/repo/mcp/extra.yml -index 9839a23..ad9b5ce 100644 ---- a/linux/system/repo/mcp/extra.yml -+++ b/linux/system/repo/mcp/extra.yml -@@ -14,3 +14,13 @@ parameters: - - pin: 'release a=${_param:linux_system_repo_mcp_extra_version}' - priority: 1100 - package: '*' -+ # Armband only provides apt_mk_version=nightly for now -+ armband_mcp_extra: -+ source: "deb [arch=arm64] http://linux.enea.com/apt-mk/${_param:linux_system_codename}/ nightly extra" -+ architectures: arm64 -+ key_url: "https://linux.enea.com/apt-mk/public.gpg" -+ clean_file: true -+ pin: -+ - pin: 'release a=nightly' -+ priority: 1100 -+ package: '*' -diff --git a/linux/system/repo/mcp/openstack.yml b/linux/system/repo/mcp/openstack.yml -index 465b75d..22defb7 100644 ---- a/linux/system/repo/mcp/openstack.yml -+++ b/linux/system/repo/mcp/openstack.yml -@@ -21,3 +21,20 @@ parameters: - - pin: 'release l=${_param:linux_system_repo_mk_openstack_version}' - priority: 1100 - package: '*' -+ armband_openstack: -+ source: "deb http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version} main" -+ architectures: arm64 -+ key_url: "https://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}/archive-mcp${_param:openstack_version}.key" -+ pin: -+ - pin: 'release l=${_param:openstack_version}' -+ priority: 1100 -+ package: '*' -+ # Armband only provides apt_mk_version=nightly for now -+ armband_mk_openstack: -+ source: "deb [arch=arm64] http://linux.enea.com/apt-mk/${_param:linux_system_codename}/ nightly ${_param:openstack_version}" -+ architectures: arm64 -+ key_url: "https://linux.enea.com/apt-mk/public.gpg" -+ pin: -+ - pin: 'release l=nightly' -+ priority: 1100 -+ package: '*' 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 deleted file mode 100644 index 5d344dd8..00000000 --- a/patches/reclass-system-salt-model/0002-linux.system-AArch64-Remove-mcelog.patch +++ /dev/null @@ -1,34 +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: Fri, 14 Jul 2017 19:26:11 +0000 -Subject: [PATCH] linux.system: AArch64: Remove mcelog - -mcelog is not available on AArch64 hardware, so skip trying to install -it. This implies Ceilometer should not use mcelog on AArch64. - -Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com> -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - linux/system/single/init.yml | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/linux/system/single/init.yml b/linux/system/single/init.yml -index c7c583b..764dfe3 100644 ---- a/linux/system/single/init.yml -+++ b/linux/system/single/init.yml -@@ -19,8 +19,6 @@ parameters: - version: purged - unattended-upgrades: - version: purged -- mcelog: -- version: latest - apt: - config: - compression-workaround: diff --git a/patches/reclass-system-salt-model/0002-linux.system.repo-Drop-arch-for-openstack-repo.patch b/patches/reclass-system-salt-model/0002-linux.system.repo-Drop-arch-for-openstack-repo.patch new file mode 100644 index 00000000..1da4a212 --- /dev/null +++ b/patches/reclass-system-salt-model/0002-linux.system.repo-Drop-arch-for-openstack-repo.patch @@ -0,0 +1,40 @@ +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +: Copyright (c) 2018 Mirantis Inc., 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: Wed, 4 Apr 2018 20:08:55 +0200 +Subject: [PATCH] linux.system.repo: Drop arch for openstack repo + +Now that mcp-repos mirror has arm64 packages too, we can either extend +the current architecture list or just drop it and let APT figure it +out. + +Extending the arch list to 'amd64,arm64' would lead to doubling repo +metadata downloads on all archs, while dropping it will allow APT to +only download the repo metadata for the current system arch. + +To keep old behavior for amd64 and prevent multiple downloads, let's +just drop the 'architectures' field. + +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +--- + linux/system/repo/mcp/openstack.yml | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/linux/system/repo/mcp/openstack.yml b/linux/system/repo/mcp/openstack.yml +index 465b75d0..8de17774 100644 +--- a/linux/system/repo/mcp/openstack.yml ++++ b/linux/system/repo/mcp/openstack.yml +@@ -7,7 +7,6 @@ parameters: + repo: + mirantis_openstack: + source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version} main" +- architectures: amd64 + key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}/archive-mcp${_param:openstack_version}.key" + pin: + - pin: 'release l=${_param:openstack_version}' diff --git a/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch b/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch new file mode 100644 index 00000000..d6dff71f --- /dev/null +++ b/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch @@ -0,0 +1,39 @@ +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +: Copyright (c) 2018 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: Thu, 7 Jun 2018 21:19:07 +0200 +Subject: [PATCH] linux.system.repo: Drop arch for mcp.mirror repo + +Extending the arch list to 'amd64,arm64' would lead to doubling repo +metadata downloads on all archs, while dropping it will allow APT to +only download the repo metadata for the current system arch. + +Setting the new linux_system_architectures is also problematic in the +context of mixed-architecture clusters. + +To keep old behavior for amd64 and prevent multiple downloads, let's +just drop the 'architectures' field. + +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +--- + linux/system/repo/mcp/mirror/v1/openstack.yml | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/linux/system/repo/mcp/mirror/v1/openstack.yml b/linux/system/repo/mcp/mirror/v1/openstack.yml +index a4a369b2..933bf53a 100644 +--- a/linux/system/repo/mcp/mirror/v1/openstack.yml ++++ b/linux/system/repo/mcp/mirror/v1/openstack.yml +@@ -7,7 +7,6 @@ parameters: + repo: + mirantis_openstack: + source: "deb http://mirror.mirantis.com/${_param:apt_mk_version}/openstack-${_param:openstack_version}/${_param:linux_system_codename} ${_param:linux_system_codename} main" +- architectures: ${_param:linux_system_architecture} + clean_file: true + key_url: https://mirror.mirantis.com/${_param:apt_mk_version}/openstack-${_param:openstack_version}/${_param:linux_system_codename}/archive-${_param:openstack_version}.key + pin: diff --git a/patches/reclass-system-salt-model/0004-linux.system.repo-hack-Add-Pike-repos-for-Queens.patch b/patches/reclass-system-salt-model/0004-linux.system.repo-hack-Add-Pike-repos-for-Queens.patch new file mode 100644 index 00000000..a5210b34 --- /dev/null +++ b/patches/reclass-system-salt-model/0004-linux.system.repo-hack-Add-Pike-repos-for-Queens.patch @@ -0,0 +1,38 @@ +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +: Copyright (c) 2018 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: Fri, 8 Jun 2018 14:06:41 +0200 +Subject: [PATCH] linux.system.repo: hack: Add Pike repos for Queens + +Mirantis repository for Queens lacks certain packages for arm64, +try using the Pike repos to fetch them instead. + +This is a temporary workaround until the Queens repos get populated +with all required arm64 binaries. + +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +--- + linux/system/repo/mcp/mirror/v1/openstack.yml | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/linux/system/repo/mcp/mirror/v1/openstack.yml b/linux/system/repo/mcp/mirror/v1/openstack.yml +index 933bf53a..810589e0 100644 +--- a/linux/system/repo/mcp/mirror/v1/openstack.yml ++++ b/linux/system/repo/mcp/mirror/v1/openstack.yml +@@ -13,3 +13,10 @@ parameters: + - pin: 'release o=Mirantis' + priority: 1100 + package: '*' ++ mirantis_openstack_pike: ++ source: "deb http://mirror.fuel-infra.org/mcp-repos/pike/${_param:linux_system_codename} pike main" ++ key_url: "http://mirror.fuel-infra.org/mcp-repos/pike/${_param:linux_system_codename}/archive-mcppike.key" ++ pin: ++ - pin: 'release l=pike' ++ priority: 1100 ++ package: '*' diff --git a/upstream/fuel b/upstream/fuel -Subproject 9b984e9be0ea5e78d111f57e2ea1c156b7b816a +Subproject 3831d538436cbf7c033b560b76f554a1dfe28a4 |