diff options
49 files changed, 174 insertions, 2684 deletions
@@ -3,3 +3,5 @@ build.log config.mk ci/clean_cache.sh *.sw? +.tox/ +docs/_build/* diff --git a/.gitmodules b/.gitmodules index 0a84688b..44cc6d80 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "opnfv-fuel"] path = upstream/fuel url = https://gerrit.opnfv.org/gerrit/fuel - branch = stable/euphrates + branch = master @@ -2,4 +2,3 @@ host=gerrit.opnfv.org port=29418 project=armband.git -defaultbranch=master @@ -1,28 +0,0 @@ -Project Name: ARM Band -Repo name: armband -Project Category: integration and testing -Lifecycle State: Incubation -Primary Contact: Bob Monkman -Project Lead: Bob Monkman -Jira Project Name: ARM Band -Jira Project Prefix: [ARMBAND] -mailing list tag [armband] -Committers: -Bob Monkman (bob.monkman@arm.com) -Rob Dimond (robert.dimond@arm.com) -Jerin Jacob (Jerin.Jacob@cavium.com) -Vinita Gupta (Vinita.Gupta@cavium.com) -Santosh Shukla (sshukla@mvista.com) -Bin Hu (bh526r@att.com) -Aiguo Cui (ag.cui@huawei.com) -Josep Puigdemont (josep.puigdemont@enea.com) -Ciprian Barbu (Ciprian.Barbu@enea.com) -Florin Dumitrascu (florin.dumitrascu@enea.com) -Alexandru Avadanii (Alexandru.Avadanii@enea.com) -Mazdak Rajabi Nasab (Mazdak.Rajabi.Nasab@enea.com) -Cristina Pauna (cristina.pauna@enea.com) - -Link to TSC approval: http://meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-09-08-13.59.html -Link to approval of Stanislaw, Josep, and Ciprian: http://lists.opnfv.org/pipermail/opnfv-tsc/2016-March/002322.html -Link to approval of Florin, Alexandru, Mazdak: http://lists.opnfv.org/pipermail/opnfv-tech-discuss/2015-December/007302.html -Link to approval of Cristina: http://lists.opnfv.org/pipermail/opnfv-tech-discuss/2016-September/012855.html diff --git a/INFO.yaml b/INFO.yaml new file mode 100644 index 00000000..b63e031f --- /dev/null +++ b/INFO.yaml @@ -0,0 +1,52 @@ +--- +project: 'ARM Band' +project_creation_date: '' +project_category: 'integration and testing ' +lifecycle_state: 'Incubation' +project_lead: &opnfv_armband_ptl + name: 'Bob Monkman' + email: 'bob.monkman@arm.com' + id: 'romolf99' + company: 'arm.com' + timezone: 'Unknown' +primary_contact: *opnfv_armband_ptl +issue_tracking: + type: 'jira' + url: 'https://jira.opnfv.org/projects/[ARMBAND]' + key: '[ARMBAND]' +mailing_list: + type: 'mailman2' + url: 'opnfv-tech-discuss@lists.opnfv.org' + tag: '[armband]' +realtime_discussion: + type: irc + server: 'freenode.net' + channel: '#opnfv-armband' +meetings: + - type: 'zoom+irc' + agenda: 'https://wiki.opnfv.org/display/meetings/Armband' + url: 'https://zoom.us/j/5014627785' + server: 'freenode.net' + channel: '#opnfv-armband' + repeats: 'bi-weekly' + time: '14:00 UTC' +repositories: + - 'armband' +committers: + - <<: *opnfv_armband_ptl + - name: 'Alexandru Avadanii' + email: 'Alexandru.Avadanii@enea.com' + company: 'enea.com' + id: 'AlexandruAvadanii' + - name: 'Cristina Pauna' + email: 'cristina.pauna@enea.com' + company: 'enea.com' + id: 'cristinapauna' +tsc: + # yamllint disable rule:line-length + approval: 'http://meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-09-08-13.59.html + https://lists.opnfv.org/g/opnfv-tsc/message/002322 + https://lists.opnfv.org/g/opnfv-tech-discuss/message/7303 + https://lists.opnfv.org/g/opnfv-tech-discuss/message/12867 + https://lists.opnfv.org/g/opnfv-tsc/message/4462' + # yamllint enable rule:line-length diff --git a/armband-fuel-config.mk b/armband-fuel-config.mk index a4a0ad5e..5f85f9c7 100644 --- a/armband-fuel-config.mk +++ b/armband-fuel-config.mk @@ -17,7 +17,7 @@ F_PATCH_DIR := ${A_FUEL_BASE}/mcp/patches # To enable remote tracking, set the following var to any non-empty string. # Leaving this var empty will bind each git submodule to its saved commit. -ARMBAND_TRACK_REMOTES ?= +ARMBAND_TRACK_REMOTES ?= yes # for the patches applying purposes (empty git config in docker build container) export GIT_COMMITTER_NAME?=OPNFV Armband diff --git a/armband-patch-copyright.template b/armband-patch-copyright.template index b63d55a7..de493454 100644 --- a/armband-patch-copyright.template +++ b/armband-patch-copyright.template @@ -1,5 +1,5 @@ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2017 Enea AB and others. +: 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 diff --git a/ci/deploy.sh b/ci/deploy.sh index 3862c137..76c237b3 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -14,7 +14,7 @@ export ARMBAND_BASE export CI_DEBUG cd "${WORKSPACE:-${ARMBAND_BASE}}" -make patches-import +make fuel-patches-import cd upstream/fuel/ci ./deploy.sh "$@" diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..c175a6c5 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,15 @@ +############################################################################## +# 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 docs_conf.conf import * + +extensions = ['sphinxcontrib.httpdomain', 'sphinx.ext.autodoc', + 'sphinx.ext.viewcode', 'sphinx.ext.napoleon', + 'sphinx.ext.intersphinx'] + +intersphinx_mapping = {} +intersphinx_mapping['armband'] = ('https://opnfv-armband.readthedocs.io/en/latest/', None) diff --git a/docs/conf.yaml b/docs/conf.yaml new file mode 100644 index 00000000..68e42dfd --- /dev/null +++ b/docs/conf.yaml @@ -0,0 +1,10 @@ +############################################################################## +# 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 +############################################################################## +--- +project_cfg: opnfv +project: armband diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..e1eb3ad0 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,17 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 +.. International License. +.. SPDX-License-Identifier: CC-BY-4.0 +.. (c) Open Platform for NFV Project, Inc. and its contributors + +.. _armband: + +======= +Armband +======= + +.. toctree:: + :maxdepth: 2 + + release/installation/index + release/release-notes/index + release/userguide/index 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..68ac3d98 100644 --- a/docs/release/installation/index.rst +++ b/docs/release/installation/index.rst @@ -1,17 +1,10 @@ -.. _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: - -**************************************** -Installation instruction for Fuel\@OPNFV -**************************************** +.. _armband-installation: .. toctree:: - :numbered: :maxdepth: 2 installation.instruction.rst diff --git a/docs/release/installation/installation.instruction.rst b/docs/release/installation/installation.instruction.rst index 502c7509..417dbee0 100644 --- a/docs/release/installation/installation.instruction.rst +++ b/docs/release/installation/installation.instruction.rst @@ -2,486 +2,21 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) Open Platform for NFV Project, Inc. and its contributors -======== +*********************************** +OPNFV Fuel Installation Instruction +*********************************** + 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, management, public). - -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 installed and running -on the Jumpserver. In case the packages are missing, the script will install -them; but depending on the OS distribution, the user might have to start the -'libvirtd' service manually. - -========================================== -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 defition: Controler 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 exists 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 briges; when linux bridge exist 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 enviroment 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 operatign 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, if they are already created -they will be used; otherwise they will be created. For the targets, the bridges are created by the deploy script. - -**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 - - .. 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> - -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 - - 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 - - .. 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 \ - -B admin7_br0,mgmt7_br0,,public7_br0 - - .. figure:: img/arm_pod5.png - :align: center - :alt: Fuel@OPNFV ARM POD5 Network Layout - - Fuel@OPNFV ARM POD5 Network Layout - - Once the deployment is complete, the SaltStack Deployment Documentation is - available at http://<Proxy VIP>:8090, e.g. http://10.0.8.103:8090. - - -Pod Descriptor Files -==================== - -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>`_ +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. -Reclass +For more information on how to install the latest release +of OPNFV when using Fuel as a deployment tool check +`OPNFV Fuel Installation Instruction on RTD`_. -10) `Reclass model <http://reclass.pantsfullofunix.net>`_ +.. _`OPNFV Fuel Installation Instruction on RTD`: https://opnfv-fuel.readthedocs.io/en/latest/release/installation diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst index 4b1e4fa7..ea82c70f 100644 --- a/docs/release/release-notes/index.rst +++ b/docs/release/release-notes/index.rst @@ -1,17 +1,10 @@ -.. _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: - -***************************** -Release notes for Fuel\@OPNFV -***************************** +.. _armband-releasenotes: .. toctree:: - :numbered: :maxdepth: 2 release-notes.rst diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst index 0052ab63..f8084f73 100644 --- a/docs/release/release-notes/release-notes.rst +++ b/docs/release/release-notes/release-notes.rst @@ -2,211 +2,20 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) Open Platform for NFV Project, Inc. and its contributors -======== +************************ +OPNFV Fuel Release Notes +************************ + 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. - - -=============== -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>`_ +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. -Fuel -==== +Currently the installer supported on ``aarch64`` is OPNFV Fuel. For more +information on Fuel release notes check `OPNFV Fuel Release Notes on RTD`_. -7) `Mirantis Cloud Platform Documentation <https://docs.mirantis.com/mcp/latest>`_ +.. _`OPNFV Fuel Release Notes on RTD`: https://opnfv-fuel.readthedocs.io/en/latest/release/release-notes 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..701ed7e4 100644 --- a/docs/release/userguide/index.rst +++ b/docs/release/userguide/index.rst @@ -1,17 +1,10 @@ -.. _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: - -************************** -User guide for Fuel\@OPNFV -************************** +.. _armband-userguide: .. toctree:: - :numbered: :maxdepth: 2 userguide.rst diff --git a/docs/release/userguide/userguide.rst b/docs/release/userguide/userguide.rst index 2b46a84a..69d02983 100644 --- a/docs/release/userguide/userguide.rst +++ b/docs/release/userguide/userguide.rst @@ -1,324 +1,22 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 +.. This work is licensed under a Creative Commons Attribution 4.0 +.. International License. +.. SPDX-License-Identifier: CC-BY-4.0 .. (c) Open Platform for NFV Project, Inc. and its contributors -======== +********************* +OPNFV Fuel User Guide +********************* + 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. +For more information on how to use OPNFV Fuel latest release after it +was deployed check `OPNFV Fuel User Guide on RTD`_. +.. _`OPNFV Fuel User Guide on RTD`: https://opnfv-fuel.readthedocs.io/en/latest/release/userguide diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..87ba3aa0 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,9 @@ +############################################################################## +# 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 +############################################################################## +lfdocs-conf +sphinx_opnfv_theme 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 37a348ea..00000000 --- a/patches/opnfv-fuel/0001-baremetal-Add-Armband-Openstack-repos-to-kvm-cmp.patch +++ /dev/null @@ -1,50 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2017 Enea AB and others. -: -: All rights reserved. This program and the accompanying materials -: are made available under the terms of the Apache License, Version 2.0 -: which accompanies this distribution, and is available at -: http://www.apache.org/licenses/LICENSE-2.0 -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Date: Sun, 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/0002-salt-formulas-Add-enable-armband-formula.patch deleted file mode 100644 index 4d2ed29b..00000000 --- a/patches/opnfv-fuel/0002-salt-formulas-Add-enable-armband-formula.patch +++ /dev/null @@ -1,249 +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: Guillermo Herrero <Guillermo.Herrero@enea.com> -Date: Tue, 25 Jul 2017 00:58:32 +0200 -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); -- nova conf: pointer_model=ps2mouse since AArch64 has no USB tablet; - -[1] https://github.com/openstack/nova/commit/f0f0953 - -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(+) - 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 - create mode 100644 mcp/salt-formulas/armband/nova_libvirt.sls - create mode 100644 mcp/salt-formulas/armband/qemu_efi.sls - create mode 100644 mcp/salt-formulas/armband/vgabios.sls - -diff --git a/mcp/config/states/openstack_ha b/mcp/config/states/openstack_ha -index 62a9654..9b88964 100755 ---- a/mcp/config/states/openstack_ha -+++ b/mcp/config/states/openstack_ha -@@ -52,6 +52,7 @@ salt -I 'neutron:server' state.sls neutron -b 1 - salt -I 'neutron:gateway' state.sls neutron.gateway - - salt -I 'nova:compute' state.sls nova -+wait_for 5.0 "salt -I 'nova:compute' state.sls armband" - - salt -I 'mongodb:server' state.sls mongodb || true - wait_for 90 "salt -C 'I@mongodb:server and *01*' cmd.run 'mongo localhost:27017/admin'" -diff --git a/mcp/config/states/openstack_noha b/mcp/config/states/openstack_noha -index 0a27876..aa369e8 100755 ---- a/mcp/config/states/openstack_noha -+++ b/mcp/config/states/openstack_noha -@@ -48,3 +48,5 @@ salt -I 'ceilometer:server' state.sls ceilometer - salt -I 'ceilometer:agent' state.sls ceilometer - - salt -I 'horizon:server' state.sls horizon -+ -+salt -I 'nova:compute' state.sls armband -diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane -index 0607b31..ab026ef 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 - fi - - # KVM libvirt first, VCP deployment -+wait_for 5.0 "salt -C 'kvm*' state.sls armband" - wait_for 5.0 "salt -C 'kvm*' state.sls libvirt" - - salt -C '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 ---- /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 -+ -+On AArch64, ACPI should be added to domain XML only if guest UEFI -+(AAVMF) is also used. -+ -+[ Alexandru.Avadanii@enea.com ] -+- pike rebase: minor context adj -+ -+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Signed-off-by: Ciprian Barbu <ciprian.barbu@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'): -diff --git a/mcp/salt-formulas/armband/init.sls b/mcp/salt-formulas/armband/init.sls -new file mode 100644 -index 0000000..8a8cf2a ---- /dev/null -+++ b/mcp/salt-formulas/armband/init.sls -@@ -0,0 +1,7 @@ -+include: -+ - armband.qemu_efi -+ - armband.vgabios -+ {%- if salt['pkg.version']('python-nova') %} -+ - armband.nova_libvirt -+ - armband.nova_config -+ {%- 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 ---- /dev/null -+++ b/mcp/salt-formulas/armband/nova_config.sls -@@ -0,0 +1,35 @@ -+{% if grains['virtual'] == 'kvm' %} -+nova_virt_type: -+ file.replace: -+ - name: "/etc/nova/nova.conf" -+ - pattern: '^virt_type\s*=.*$' -+ - repl: "virt_type = qemu" -+nova_compute_virt_type: -+ file.replace: -+ - name: "/etc/nova/nova-compute.conf" -+ - pattern: '^virt_type\s*=.*$' -+ - repl: "virt_type = qemu" -+{% endif %} -+nova_pointer_model: -+ file.replace: -+ - name: "/etc/nova/nova.conf" -+ - pattern: '^#pointer_model\s*=.*$' -+ - repl: "pointer_model = ps2mouse" -+nova_cpu_mode: -+ file.replace: -+ - name: "/etc/nova/nova.conf" -+ - pattern: '^cpu_mode\s*=\s*host-passthrough' -+ - repl: "cpu_mode = custom" -+nova_cpu_model: -+ file.replace: -+ - name: "/etc/nova/nova.conf" -+ - pattern: '^#cpu_model\s*=.*$' -+ {% if grains['virtual'] == 'kvm' %} -+ - repl: "cpu_model = cortex-a57" -+ {% else %} -+ - repl: "cpu_model = host" -+ {% endif %} -+restart_nova-compute: -+ cmd: -+ - run -+ - 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 ---- /dev/null -+++ b/mcp/salt-formulas/armband/nova_libvirt.sls -@@ -0,0 +1,7 @@ -+nova-libvirt-aarch64-rollup: -+ file.patch: -+ - name: /usr/lib/python2.7/dist-packages -+ - 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' -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 ---- /dev/null -+++ b/mcp/salt-formulas/armband/qemu_efi.sls -@@ -0,0 +1,2 @@ -+qemu-efi: -+ 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 ---- /dev/null -+++ b/mcp/salt-formulas/armband/vgabios.sls -@@ -0,0 +1,7 @@ -+vgabios: -+ pkg.installed -+/usr/share/qemu: -+ file.directory -+/usr/share/qemu/vgabios-stdvga.bin: -+ file.symlink: -+ - target: "/usr/share/vgabios/vgabios.bin" 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 66e4b7d8..00000000 --- a/patches/opnfv-fuel/0003-network-public-Use-arm-virtual2-POD-config.patch +++ /dev/null @@ -1,137 +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: 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 securedlab, 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. - -Also, since our new gateway resides at 10.0.9.254, trim the DHCP pool -range for the public network to not include that address. - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/config/states/networks | 6 +++--- - .../classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml | 4 ++-- - .../classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml | 2 +- - .../classes/cluster/virtual-mcp-pike-odl-noha/infra/config.yml | 2 +- - .../classes/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, 10 insertions(+), 10 deletions(-) - -diff --git a/mcp/config/states/networks b/mcp/config/states/networks -index 5beabdb..ca59ee3 100755 ---- a/mcp/config/states/networks -+++ b/mcp/config/states/networks -@@ -18,7 +18,7 @@ PUBLIC_NET=$(salt --out yaml -C 'I@nova:compute and *01*' pillar.get _param:exte - pillar.get _param:openstack_compute_node01_external_address | \ - awk --re-interval '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $2; exit}') - --[ -n "${PUBLIC_NET}" ] && PUBLIC_NET="${PUBLIC_NET%.*}.0/24" || PUBLIC_NET="10.16.0.0/24" -+[ -n "${PUBLIC_NET}" ] && PUBLIC_NET="${PUBLIC_NET%.*}.0/24" || PUBLIC_NET="10.0.9.0/24" - - salt -C 'I@nova:controller and *01*' cmd.run ". /root/keystonercv3; \ - openstack compute service list; \ -@@ -29,6 +29,6 @@ salt -C 'I@nova:controller and *01*' cmd.run ". /root/keystonercv3; \ - openstack network create --external --default --provider-network-type flat \ - --provider-physical-network physnet1 floating_net" - salt -C 'I@nova:controller and *01*' cmd.run ". /root/keystonercv3; \ -- openstack subnet create --gateway ${PUBLIC_NET%.*}.1 --no-dhcp \ -- --allocation-pool start=${PUBLIC_NET%.*}.130,end=${PUBLIC_NET%.*}.254 \ -+ openstack subnet create --gateway ${PUBLIC_NET%.*}.254 --no-dhcp \ -+ --allocation-pool start=${PUBLIC_NET%.*}.130,end=${PUBLIC_NET%.*}.200 \ - --network floating_net --subnet-range ${PUBLIC_NET} floating_subnet" -diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml -index 7e3a494..3a240b0 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 89b06fb..0086470 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 e80c442..1df99b4 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/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 ca3ca2a1..00000000 --- a/patches/opnfv-fuel/0004-mcp-salt-formulas-opendaylight-AArch64-leveldb.patch +++ /dev/null @@ -1,48 +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: 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 30c337c..f62ce5c 100644 ---- a/mcp/salt-formulas/opendaylight/server.sls -+++ b/mcp/salt-formulas/opendaylight/server.sls -@@ -79,4 +79,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-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 dac4ff3a..00000000 --- a/patches/opnfv-fuel/0005-maas-Add-curtin_userdata_arm64_generic_xenial.patch +++ /dev/null @@ -1,164 +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, 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 284f1bc..533500d 100644 ---- a/mcp/patches/patches.list -+++ b/mcp/patches/patches.list -@@ -16,3 +16,4 @@ - /usr/share/salt-formulas/env: 0009-controller-Use-keystoneclient-to-check-project-ID.patch - /usr/share/salt-formulas/env: 0010-maas-region-allow-timeout-override.patch - /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch -+/usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch -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 04ffdb4..9cad061 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 -@@ -39,6 +39,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 v1 -+ -+ mQENBFagAroBCADWboNIjuF6lB1mWv2+EbvqY3lKl5mLKhr2DnSUkKeHUPBv8gNM -+ qK8Q00AMIyPiyEhgjA+dWizZ+5aBgxoiY7oMeLJ2Xym36U/8SYq2BWd3SGCbMNoz -+ SJDxDUSM/HFVs6atF1M3DY9oN65hSVnu4uy5Tu6asf6k4rhAyk0z4+pRcPBCu2vq -+ mnGi3COM/+9PShrEKeVOx5W2vRJywUFuq8EDvQnRoJ0GvM28JiJIanw17YwIPxhg -+ BKZVpZjan5X+ihVMXwA2h/G/FS5Omhd50RqV6LWSYs94VJJgYqHx8UMm7izcxI+P -+ ct3IcbD195bPbJ+SbuiFe45ZLsdY1MyGiU2BABEBAAG0K0VuZWEgQXJtYmFuZCBE -+ ZXZvcHMgVGVhbSA8YXJtYmFuZEBlbmVhLmNvbT6JAT4EEwECACgFAlagAroCGwMF -+ CQPCZwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEN6rkLp5irHRsG8H/2P2 -+ hO6jFHPRD1u8j9ufO9AxoInaEG9GeRjuvMc1tCUzovXvTs106TZ0as6MbAJ1S6u5 -+ E8UyQ1+VGepvdIJPXx3PCxLmUt6WIqmdOdqFrxIclohig/kardi3NfX1MBvlEV/c -+ 7Q51H43hrlMqMpqgY1Bm+53PLC4ujjlDJBtJOEU9dki319bUmng+gO9BAljDJFXv -+ JqY6+P/er7IgCbRXUXYfyJzgjx9JwlKbmdQ8QnCrZjF/VHIW40/mu5IIJuFvuCti -+ tcog+SNSlDmCOS+wE8CCojeuJqupIOcz9zypVGzeus/N5Q5EEFe7GYWYS/5NKUkE -+ 1TuuFeZKu5NJC5rkwIU= -+ =7p60 -+ -----END PGP PUBLIC KEY BLOCK----- -+ saltstack_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 e11dbee7..00000000 --- a/patches/opnfv-fuel/0006-maas-boot-resources-Add-arm64-architecture.patch +++ /dev/null @@ -1,39 +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, 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/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch b/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch deleted file mode 100644 index 92ea8af7..00000000 --- a/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch +++ /dev/null @@ -1,174 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2017 Enea AB and others. -: -: All rights reserved. This program and the accompanying materials -: are made available under the terms of the Apache License, Version 2.0 -: which accompanies this distribution, and is available at -: http://www.apache.org/licenses/LICENSE-2.0 -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Date: Sun, 20 Aug 2017 22:41:26 +0200 -Subject: [PATCH] mcp: salt-formulas: armband: Extend libvirt_domain - -Add new state in armband salt formula that: -* extends salt's virt libvirt_domain.jinja template with support for: - - hw_firmware_type; - - virt_machine_model; - - cpu_model; - These will later be leveraged via salt virt formula with AArch64 - specific values. -* to ensure compatibilty of `virt.purge` with NVRAM-enabled domains - at undefine time, pass down the proper flag to libvirt from virt.py. -* re-enable AArch64 bootstrap - Recent changes in salt bootstrap script from [1] whitelist a - fixed pool of known architectures. Add "arm64" to that list on the - fly, as part of `config.gather_bootstrap_script`. - NOTE: This change will be leveraged by passing a custom DEB repo to - the bootstrap script with `-R linux.enea.com/saltstack`. - -NOTE: After running this new state, salt-minion should be restarted -to pick up the changes, so we'll run it before rebooting kvm nodes. - -[1] http://bootstrap.saltstack.com - -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 ++ - 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 ef2f78b..771182c 100755 ---- a/mcp/config/states/baremetal_init -+++ b/mcp/config/states/baremetal_init -@@ -28,6 +28,7 @@ salt -C 'kvm* or cmp*' state.apply salt.minion - salt -C 'kvm* or cmp*' service.force_reload salt-minion - salt -C 'cmp*' state.apply linux.system - salt -C 'cmp*' state.apply linux.network || true -+salt -C 'kvm*' state.apply armband.salt_minion - salt -C 'kvm* or cmp*' system.reboot - wait_for 90.0 "salt -C 'kvm* or cmp*' test.ping" - -diff --git a/mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff b/mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff -new file mode 100644 -index 0000000..9e74c24 ---- /dev/null -+++ b/mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff -@@ -0,0 +1,101 @@ -+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Date: Sun Aug 20 18:18:53 2017 +0200 -+Subject: [PATCH] cloud.py: Allow AArch64 arch in salt bootstrap -+ -+Recent changes in salt bootstrap script from [1] whitelist a -+fixed pool of known architectures. Add "arm64" to that list on the -+fly, as part of `config.gather_bootstrap_script`. -+ -+NOTE: This change will be leveraged by passing a custom DEB repo to -+the bootstrap script with `-R linux.enea.com/saltstack`. -+ -+[1] http://bootstrap.saltstack.com -+ -+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+--- -+ -+diff --git a/salt/utils/cloud.py b/salt/utils/cloud.py -+--- a/salt/utils/cloud.py -++++ b/salt/utils/cloud.py -+@@ -2772,6 +2772,9 @@ -+ if not script_content: -+ raise ValueError('No content in bootstrap script !') -+ -++ # NOTE(armband): edit bootstrap script on the fly to allow AArch64 -++ script_content = script_content.replace('"amd64")', '"amd64"|"arm64")') -++ -+ # Get the path to the built-in deploy scripts directory -+ builtin_deploy_dir = os.path.join( -+ os.path.dirname(__file__), -+-- -+ -+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Date: Sun Aug 20 18:18:53 2017 +0200 -+Subject: [PATCH] libvirt_domain.jinja: Add AArch64 support -+ -+Salt virt state relies on a Jinja template to create a libvirt -+XML definition for each new VM. -+This template needs to be extended with a few specific options -+for AArch64: -+- UEFI loader support (pflash); -+- custom machine model (e.g. 'virt-2.9'), since AArch64 defaults to -+ 'integratorcp'; -+- custom cpu model; -+ -+Allow all these to be parametrized from the salt virt formula, -+which we will also adapt to allow the params to be passed via our -+reclass model. -+ -+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+--- -+ -+diff --git a/salt/templates/virt/libvirt_domain.jinja b/salt/templates/virt/libvirt_domain.jinja -+--- a/salt/templates/virt/libvirt_domain.jinja -++++ b/salt/templates/virt/libvirt_domain.jinja -+@@ -3,11 +3,22 @@ -+ <vcpu>{{ cpu }}</vcpu> -+ <memory unit='KiB'>{{ mem }}</memory> -+ <os> -++ {% if custom_virt_machine %} -++ <type machine='{{ virt_machine_model }}'>hvm</type> -++ {% else %} -+ <type>hvm</type> -++ {% endif %} -++ {% if os_loader_type == 'pflash' %} -++ <loader readonly='yes' type='{{ os_loader_type }}'>{{ os_loader }}</loader> -++ <nvram>{{ os_loader_nvram }}</nvram> -++ {% endif %} -+ {% for dev in boot_dev %} -+ <boot dev='{{ dev }}' /> -+ {% endfor %} -+ </os> -++ {% if cpu_mode == 'custom' %} -++ <cpu mode='{{ cpu_model }}' check='none'/> -++ {% endif %} -+ <devices> -+ {% for diskname, disk in disks.items() %} -+ <disk type='file' device='disk'> -+-- -+ -+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Date: Sun Nov 19 02:18:53 2017 +0200 -+Subject: [PATCH] virt.py: undefine: NVRAM flag support -+ -+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+--- -+ -+diff --git a/salt/modules/virt.py b/salt/modules/virt.py -+--- a/salt/modules/virt.py -++++ b/salt/modules/virt.py -+@@ -1523,7 +1523,10 @@ -+ salt '*' virt.undefine <domain> -+ ''' -+ dom = _get_domain(vm_) -+- return dom.undefine() == 0 -++ try: -++ return dom.undefineFlags(libvirt.VIR_DOMAIN_UNDEFINE_NVRAM) == 0 -++ except libvirt.libvirtError: -++ return dom.undefine() == 0 -+ -+ -+ 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 ---- /dev/null -+++ b/mcp/salt-formulas/armband/salt_minion.sls -@@ -0,0 +1,7 @@ -+salt-minion-aarch64-rollup: -+ file.patch: -+ - name: /usr/lib/python2.7/dist-packages -+ - 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' diff --git a/patches/opnfv-fuel/0008-virtng.py-virt.sls-Extend-libvirt_domain.patch b/patches/opnfv-fuel/0008-virtng.py-virt.sls-Extend-libvirt_domain.patch deleted file mode 100644 index b801728f..00000000 --- a/patches/opnfv-fuel/0008-virtng.py-virt.sls-Extend-libvirt_domain.patch +++ /dev/null @@ -1,223 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2017 Enea AB and others. -: -: All rights reserved. This program and the accompanying materials -: are made available under the terms of the Apache License, Version 2.0 -: which accompanies this distribution, and is available at -: http://www.apache.org/licenses/LICENSE-2.0 -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Date: Mon, 21 Aug 2017 01:10:16 +0200 -Subject: [PATCH] virtng.py, virt.sls: Extend libvirt_domain - -Extend _modules/virtng.py, salt/control/virt.sls with support for: -- hw_firmware_type; -- virt_machine_model; -- cpu_model; - -This functionality relies on the corresponding changes to be -implemented in libvirt_domain.jinja template. - -These will later be leveraged via our reclass model with AArch64 -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 ++ - 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 ---- /dev/null -+++ b/mcp/patches/0103-virtng-module-Extend-libvirt_domain.patch -@@ -0,0 +1,54 @@ -+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Date: Mon, 21 Aug 2017 02:03:01 +0200 -+Subject: [PATCH] virtng: module: Extend libvirt_domain -+ -+Extend virtng.py with support for passing down new params: -+- hw_firmware_type; -+- virt_machine_model; -+- cpu_model; -+ -+This functionality relies on the corresponding changes to be -+implemented in libvirt_domain.jinja template. -+ -+These will later be leveraged via salt virt formula with AArch64 -+specific values. -+ -+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+--- -+ -+diff --git a/_modules/virtng.py b/_modules/virtng.py -+--- a/_modules/virtng.py -++++ b/_modules/virtng.py -+@@ -56,6 +56,10 @@ -+ -+ VIRT_DEFAULT_HYPER = 'kvm' -+ -++DEFAULT_UEFI_LOADER_PATH = { -++ "x86_64": "/usr/share/OVMF/OVMF_CODE.fd", -++ "aarch64": "/usr/share/AAVMF/AAVMF_CODE.fd" -++} -+ -+ def __virtual__(): -+ if not HAS_ALL_IMPORTS: -+@@ -227,6 +231,21 @@ -+ # TODO: make bus and model parameterized, this works for 64-bit Linux -+ context['controller_model'] = 'lsilogic' -+ -++ # TODO: limit cpu_model, hw_firmware_type, virt_machine_type to qemu/kvm -++ # FIXME: parametrize hardcoded path for NVRAM storage -++ if 'hw_firmware_type' in kwargs and kwargs['hw_firmware_type'] == 'uefi': -++ context['os_loader_type'] = 'pflash' -++ context['os_loader'] = DEFAULT_UEFI_LOADER_PATH[os.uname()[-1]] -++ context['os_loader_nvram'] = '/var/lib/libvirt/qemu/nvram/{0}_VARS.fd'.format(name) -++ -++ if 'virt_machine_model' in kwargs: -++ context['custom_virt_machine'] = True -++ context['virt_machine_model'] = kwargs['virt_machine_model'] -++ -++ if 'cpu_model' in kwargs: -++ context['cpu_mode'] = 'custom' -++ context['cpu_model'] = kwargs['cpu_model'] -++ -+ if 'boot_dev' in kwargs: -+ context['boot_dev'] = [] -+ 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..a9fe11b ---- /dev/null -+++ b/mcp/patches/0104-salt-control-virt-Extend-libvirt_domain.patch -@@ -0,0 +1,51 @@ -+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+Date: Mon, 21 Aug 2017 02:03:01 +0200 -+Subject: [PATCH] salt: control: virt: Extend libvirt_domain -+ -+Extend salt/control/virt.sls with support for new params: -+- hw_firmware_type; -+- virt_machine_model; -+- cpu_model; -+ -+This functionality relies on the corresponding changes to be -+implemented in libvirt_domain.jinja template, as well as in -+salt custom py module virtng.py. -+ -+These will later be leveraged via reclass model with AArch64 -+specific values. -+ -+FIXME: Move all new params to different section, as "size" is -+definitely not the best choice. -+ -+Example reclass model usage: -+salt: -+ control: -+ size: -+ openstack.example_vm_type: -+ hw_firmware_type: uefi -+ virt_machine_model: virt -+ cpu_model: host-passthrough -+ -+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -+--- -+ -+diff --git a/salt/control/virt.sls b/salt/control/virt.sls -+--- a/salt/control/virt.sls -++++ b/salt/control/virt.sls -+@@ -44,6 +44,16 @@ -+ seed: True -+ serial_type: pty -+ console: True -++ # FIXME(armband): Move these 3 params to different section -++ {%- if size.hw_firmware_type is defined %} -++ hw_firmware_type: {{ size.hw_firmware_type }} -++ {%- endif %} -++ {%- if size.virt_machine_model is defined %} -++ virt_machine_model: {{ size.virt_machine_model }} -++ {%- endif %} -++ {%- if size.cpu_model is defined %} -++ cpu_model: {{ size.cpu_model }} -++ {%- endif %} -+ - unless: virsh list --all --name| grep -E "^{{ node_name }}.{{ cluster.domain }}$" -+ -+ #salt_control_seed_{{ cluster_name }}_{{ node_name }}: -diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list -index 533500d..6b202e7 100644 ---- a/mcp/patches/patches.list -+++ b/mcp/patches/patches.list -@@ -17,3 +17,5 @@ - /usr/share/salt-formulas/env: 0010-maas-region-allow-timeout-override.patch - /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch - /usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch -+/usr/share/salt-formulas/env: 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: - openstack.control: - cpu: 4 - ram: 12288 -+ hw_firmware_type: uefi -+ virt_machine_model: virt -+ cpu_model: host-passthrough - disk_profile: small - net_profile: default - openstack.database: - cpu: 4 - ram: 6144 -+ hw_firmware_type: uefi -+ virt_machine_model: virt -+ cpu_model: host-passthrough - disk_profile: large - net_profile: default - openstack.message_queue: - cpu: 4 - ram: 2048 -+ hw_firmware_type: uefi -+ virt_machine_model: virt -+ cpu_model: host-passthrough - disk_profile: small - net_profile: default - openstack.telemetry: - cpu: 2 - ram: 3072 -+ hw_firmware_type: uefi -+ virt_machine_model: virt -+ cpu_model: host-passthrough - disk_profile: xxlarge - net_profile: default - # stacklight.log: -@@ -85,6 +97,9 @@ parameters: - openstack.proxy: - cpu: 2 - ram: 2048 -+ hw_firmware_type: uefi -+ virt_machine_model: virt -+ cpu_model: host-passthrough - 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: - opendaylight.server: - cpu: 4 - ram: 6144 -+ hw_firmware_type: uefi -+ virt_machine_model: virt -+ cpu_model: host-passthrough - disk_profile: small - net_profile: default - cluster: 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 2f05c286..00000000 --- a/patches/opnfv-fuel/0009-seedng-module-Add-AArch64-repo.patch +++ /dev/null @@ -1,59 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2017 Enea AB and others. -: -: All rights reserved. This program and the accompanying materials -: are made available under the terms of the Apache License, Version 2.0 -: which accompanies this distribution, and is available at -: http://www.apache.org/licenses/LICENSE-2.0 -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Date: Mon, 21 Aug 2017 20:42:00 +0200 -Subject: [PATCH] seedng: module: Add AArch64 repo - -salt custom py module seedng.py should use custom repo arg -"-R linux.enea.com/saltstack" on AArch64 nodes. - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - .../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 6b202e7..3a1d815 100644 ---- a/mcp/patches/patches.list -+++ b/mcp/patches/patches.list -@@ -19,3 +19,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 183b642c..00000000 --- a/patches/opnfv-fuel/0010-aarch64-skip-configuration-of-hugepages.patch +++ /dev/null @@ -1,36 +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: 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 fcde8e3b..00000000 --- a/patches/opnfv-fuel/0011-baremetal-virtual-Extend-arch-list-for-UCA-repo.patch +++ /dev/null @@ -1,46 +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: 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 0086470..cf88e3d 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/0012-Add-opnfv-user-to-the-deployment.patch b/patches/opnfv-fuel/0012-Add-opnfv-user-to-the-deployment.patch deleted file mode 100644 index a1593c95..00000000 --- a/patches/opnfv-fuel/0012-Add-opnfv-user-to-the-deployment.patch +++ /dev/null @@ -1,72 +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: Charalampos Kominos <Charalampos.Kominos@enea.com> -Date: Fri, 1 Sep 2017 12:24:35 +0200 -Subject: [PATCH] Add opnfv user to the deployment - -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(+) - create mode 100644 mcp/salt-formulas/opnfv/adduser.sls - -diff --git a/mcp/config/states/baremetal_init b/mcp/config/states/baremetal_init -index 771182c..82f783d 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*' state.apply opnfv.adduser - salt -C 'kvm*' state.apply linux.network - salt -C 'kvm* or cmp*' state.apply salt.minion - salt -C 'kvm* or cmp*' service.force_reload salt-minion -diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane -index ab026ef..4212b8e 100755 ---- a/mcp/config/states/virtual_control_plane -+++ b/mcp/config/states/virtual_control_plane -@@ -49,6 +49,7 @@ while [ $rc -ne 0 ] && [ ${attempt} -lt ${total_attempts} ]; do - ((attempt+=1)) - done - -+wait_for 5.0 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply opnfv.adduser" - wait_for 10.0 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all" - - # Propagate APT proxy config created by curtin on baremetal nodes to VCP VMs -diff --git a/mcp/reclass/classes/cluster/all-mcp-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 - - cluster.all-mcp-arch-common.opnfv -+parameters: -+ _param: -+ opnfv_user_username: opnfv -+ opnfv_user_password: $1$5/pIEHT1$XFBhNWW4Q8gYd19hczgPF1 -diff --git a/mcp/salt-formulas/opnfv/adduser.sls b/mcp/salt-formulas/opnfv/adduser.sls -new file mode 100644 -index 0000000..78ef993 ---- /dev/null -+++ b/mcp/salt-formulas/opnfv/adduser.sls -@@ -0,0 +1,7 @@ -+add_opnfv_user: -+ user.present: -+ - name: {{ salt['pillar.get']('_param:opnfv_user_username') }} -+ - password: {{ salt['pillar.get']('_param:opnfv_user_password') }} -+ - createhome: True -+ - groups: -+ - sudo 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 34099545..00000000 --- a/patches/opnfv-fuel/0013-glusterfs-Use-3.12-for-AArch64.patch +++ /dev/null @@ -1,61 +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, 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/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/0003-linux.system.repo.glusterfs-Add-arm64-arch.patch b/patches/reclass-system-salt-model/0003-linux.system.repo.glusterfs-Add-arm64-arch.patch deleted file mode 100644 index 65578721..00000000 --- a/patches/reclass-system-salt-model/0003-linux.system.repo.glusterfs-Add-arm64-arch.patch +++ /dev/null @@ -1,29 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: Copyright (c) 2017 Enea AB and others. -: -: All rights reserved. This program and the accompanying materials -: are made available under the terms of the Apache License, Version 2.0 -: which accompanies this distribution, and is available at -: http://www.apache.org/licenses/LICENSE-2.0 -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Date: Sun, 26 Nov 2017 17:55:13 +0100 -Subject: [PATCH] linux.system.repo.glusterfs: Add arm64 arch - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - linux/system/repo/glusterfs.yml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/linux/system/repo/glusterfs.yml b/linux/system/repo/glusterfs.yml -index fb331f0..ffad938 100644 ---- a/linux/system/repo/glusterfs.yml -+++ b/linux/system/repo/glusterfs.yml -@@ -6,6 +6,6 @@ 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/tox.ini b/tox.ini new file mode 100644 index 00000000..c3299e47 --- /dev/null +++ b/tox.ini @@ -0,0 +1,22 @@ +############################################################################## +# 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 +############################################################################## +[tox] +minversion = 1.6 +envlist = + docs, + docs-linkcheck +skipsdist = true + +[testenv:docs] +deps = -rdocs/requirements.txt +commands = + sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html + +[testenv:docs-linkcheck] +deps = -rdocs/requirements.txt +commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck diff --git a/upstream/fuel b/upstream/fuel -Subproject 510a5fe446dea8513060813794c99e856eff184 +Subproject ee1dd317ddeebc34b3c038fe8b1eca693ab3ee3 |