docs/install-instr: AArch64 FW, plugins refresh.
[armband.git] / docs / installation-instruction.rst
1 ====================================================================================================================
2 OPNFV Installation instruction for the AArch64 Brahmaputra 3.0 release of OPNFV when using Fuel as a deployment tool
3 ====================================================================================================================
4
5 License
6 =======
7
8 This work is licensed under a Creative Commons Attribution 4.0 International
9 License. .. http://creativecommons.org/licenses/by/4.0 ..
10 (c) Jonas Bjurel (Ericsson AB) and others
11
12 Abstract
13 ========
14
15 This document describes how to install the Brahmaputra 3.0 release of
16 OPNFV when using Fuel as a deployment tool, with an AArch64 (only) target
17 node pool.
18
19 Introduction
20 ============
21
22 This document provides guidelines on how to install and
23 configure the Brahmaputra 3.0 release of OPNFV when using Fuel as a
24 deployment tool, with an AArch64 (only) target node pool,
25 including required software and hardware configurations.
26
27 Although the available installation options give a high degree of
28 freedom in how the system is set-up, including architecture, services
29 and features, etc., said permutations may not provide an OPNFV
30 compliant reference architecture. This instruction provides a
31 step-by-step guide that results in an OPNFV Brahmaputra compliant
32 deployment.
33
34 The audience of this document is assumed to have good knowledge in
35 networking and Unix/Linux administration.
36
37 Preface
38 =======
39 Before starting the installation of the AArch64 Brahmaputra 3.0 release of
40 OPNFV, using Fuel as a deployment tool, some planning must be
41 done.
42
43 Retrieving the ISO image
44 ------------------------
45
46 First of all, the Fuel deployment ISO image needs to be retrieved, the
47 ArmbandFuel .iso image of the AArch64 Brahmaputra release can be found
48 at *Reference: 2*
49
50 Building the ISO image
51 ----------------------
52
53 Alternatively, you may build the ArmbandFuel .iso from source by cloning the
54 opnfv/armband git repository. To retrieve the repository for the AArch64
55 Brahmaputra 3.0 release use the following command:
56
57 .. code-block:: bash
58
59     $ git clone https://gerrit.opnfv.org/gerrit/armband
60
61 Check-out the Brahmaputra release tag to set the HEAD to the
62 baseline required to replicate the Brahmaputra release:
63
64 .. code-block:: bash
65
66     $ git checkout brahmaputra.3.0
67
68 Go to the armband directory and build the .iso:
69
70 .. code-block:: bash
71
72     $ cd armband
73     $ make release
74
75 For more information on how to build, please see *Reference: 14*
76
77 Other preparations
78 ------------------
79
80 Next, familiarize yourself with Fuel by reading the following documents:
81
82 - Fuel planning guide, please see *Reference: 8*
83
84 - Fuel user guide, please see *Reference: 9*
85
86 - Fuel operations guide, please see *Reference: 10*
87
88 - Fuel Plugin Developers Guide, please see *Reference: 11*
89
90 Prior to installation, a number of deployment specific parameters must be collected, those are:
91
92 #.     Provider sub-net and gateway information
93
94 #.     Provider VLAN information
95
96 #.     Provider DNS addresses
97
98 #.     Provider NTP addresses
99
100 #.     Network overlay you plan to deploy (VLAN, VXLAN, FLAT)
101
102 #.     How many nodes and what roles you want to deploy (Controllers, Storage, Computes)
103
104 #.     Monitoring options you want to deploy (Ceilometer, Syslog, erc.).
105
106 #.     Other options not covered in the document are available in the links above
107
108
109 This information will be needed for the configuration procedures
110 provided in this document.
111
112 Hardware requirements
113 =====================
114
115 The following minimum hardware requirements must be met for the
116 installation of AArch64 Brahmaputra 3.0 using Fuel:
117
118 +--------------------+------------------------------------------------------+
119 | **HW Aspect**      | **Requirement**                                      |
120 |                    |                                                      |
121 +====================+======================================================+
122 | **AArch64 nodes**  | Minimum 5 (3 for non redundant deployment):          |
123 |                    |                                                      |
124 |                    | - 3(1) Controllers (1 colocated mongo/ceilometer     |
125 |                    |   role, 2 Ceph-OSD roles)                            |
126 |                    |                                                      |
127 |                    | - 1 Compute (1 co-located Ceph-OSD role)             |
128 |                    |                                                      |
129 +--------------------+------------------------------------------------------+
130 | **CPU**            | Minimum 1 socket AArch64 (ARMv8) with Virtualization |
131 |                    | support                                              |
132 +--------------------+------------------------------------------------------+
133 | **RAM**            | Minimum 16GB/server (Depending on VNF work load)     |
134 |                    |                                                      |
135 +--------------------+------------------------------------------------------+
136 | **Disk**           | Minimum 256GB 10kRPM spinning disks                  |
137 |                    |                                                      |
138 +--------------------+------------------------------------------------------+
139 | **Firmware**       | UEFI compatible (e.g. EDK2) with PXE support         |
140 +--------------------+------------------------------------------------------+
141 | **Networks**       | 4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE)      |
142 |                    |                                                      |
143 |                    | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network        |
144 |                    |                                                      |
145 |                    | Note: These can be allocated to a single NIC -       |
146 |                    | or spread out over multiple NICs as your hardware    |
147 |                    | supports.                                            |
148 +--------------------+------------------------------------------------------+
149 | **1 x86_64 node**  | - 1 Fuel deployment master, x86 (may be virtualized) |
150 +--------------------+------------------------------------------------------+
151
152 Help with Hardware Requirements
153 ===============================
154
155 Calculate hardware requirements:
156
157 When choosing the hardware on which you will deploy your OpenStack
158 environment, you should think about:
159
160 - CPU -- Consider the number of virtual machines that you plan to deploy in your cloud environment and the CPU per virtual machine.
161
162 - Memory -- Depends on the amount of RAM assigned per virtual machine and the controller node.
163
164 - Storage -- Depends on the local drive space per virtual machine, remote volumes that can be attached to a virtual machine, and object storage.
165
166 - Networking -- Depends on the Choose Network Topology, the network bandwidth per virtual machine, and network storage.
167
168
169 Top of the rack (TOR) Configuration requirements
170 ================================================
171
172 The switching infrastructure provides connectivity for the OPNFV
173 infrastructure operations, tenant networks (East/West) and provider
174 connectivity (North/South); it also provides needed connectivity for
175 the Storage Area Network (SAN).
176 To avoid traffic congestion, it is strongly suggested that three
177 physically separated networks are used, that is: 1 physical network
178 for administration and control, one physical network for tenant private
179 and public networks, and one physical network for SAN.
180 The switching connectivity can (but does not need to) be fully redundant,
181 in such case it comprises a redundant 10GE switch pair for each of the
182 three physically separated networks.
183
184 The physical TOR switches are **not** automatically configured from
185 the Fuel OPNFV reference platform. All the networks involved in the OPNFV
186 infrastructure as well as the provider networks and the private tenant
187 VLANs needs to be manually configured.
188
189 Manual configuration of the Brahmaputra hardware platform should
190 be carried out according to the OPNFV Pharos specification:
191 <https://wiki.opnfv.org/pharos/pharos_specification>
192
193 OPNFV Software installation and deployment
194 ==========================================
195
196 This section describes the installation of the OPNFV installation
197 server (Fuel master) as well as the deployment of the full OPNFV
198 reference platform stack across a server cluster.
199
200 Install Fuel master
201 -------------------
202 #. Mount the Brahmaputra Fuel ISO file/media as a boot device to the jump host server.
203
204 #. Reboot the jump host to establish the Fuel server.
205
206    - The system now boots from the ISO image.
207
208    - Select "Fuel Install (Static IP)" (See figure below)
209
210    - Press [Enter].
211
212    .. figure:: img/grub-1.png
213
214 #. Wait until screen Fuel setup is shown (Note: This can take up to 30 minutes).
215
216 #. In the "Fuel User" section - Confirm/change the default password (See figure below)
217
218    - Enter "admin" in the Fuel password input
219
220    - Enter "admin" in the Confirm password input
221
222    - Select "Check" and press [Enter]
223
224    .. figure:: img/fuelmenu1.png
225
226 #. In the "Network Setup" section - Configure DHCP/Static IP information for your FUEL node - For example, ETH0 is 10.20.0.2/24 for FUEL booting and ETH1 is DHCP/Static in your corporate/lab network (see figure below).
227
228    - **NOTE**: ArmbandFuel@OPNFV requires internet connectivity during bootstrap
229      image building, due to missing arm64 (AArch64) packages in the partial
230      local Ubuntu mirror (consequence of ports.ubuntu.com mirror architecture).
231
232    - Configuration of ETH1 interface for connectivity into your corporate/lab
233      network is mandatory, as internet connection is required during deployment.
234
235    .. figure:: img/fuelmenu2.png
236
237    .. figure:: img/fuelmenu2a.png
238
239 #. In the "PXE Setup" section (see figure below) - Change the following fields to appropriate values (example below):
240
241    - DHCP Pool Start 10.20.0.3
242
243    - DHCP Pool End 10.20.0.254
244
245    - DHCP Pool Gateway  10.20.0.2 (IP address of Fuel node)
246
247    .. figure:: img/fuelmenu3.png
248
249 #. In the "DNS & Hostname" section (see figure below) - Change the following fields to appropriate values:
250
251    - Hostname
252
253    - Domain
254
255    - Search Domain
256
257    - External DNS
258
259    - Hostname to test DNS
260
261    - Select <Check> and press [Enter]
262
263    .. figure:: img/fuelmenu4.png
264
265 #. **DO NOT CHANGE** anything in "Bootstrap Image" section (see figure below).
266
267    In ArmbandFuel@OPNFV, this data is **NOT** actually used for bootstrap
268    image building. Any change here will replace the configuration from
269    the OPNFV bootstrap build scripts and will lead to a failed bootstrap
270    image build.
271
272    **NOTE:** Cannot be used in tandem with local repository support.
273
274    .. figure:: img/fuelmenu5.png
275
276 #. In the "Time Sync" section (see figure below) - Change the following fields to appropriate values:
277
278    - NTP Server 1 <Customer NTP server 1>
279
280    - NTP Server 2 <Customer NTP server 2>
281
282    - NTP Server 3 <Customer NTP server 3>
283
284    .. figure:: img/fuelmenu6.png
285
286 #. Start the installation.
287
288    - Press <F8> or select Quit Setup and press Save and Quit.
289
290    - Installation starts, wait until the login screen is shown.
291
292
293 Boot the Node Servers
294 ---------------------
295
296 After the Fuel Master node has rebooted from the above steps and is at
297 the login prompt, you should boot the Node Servers (Your
298 Compute/Control/Storage blades (nested or real) with a PXE booting
299 scheme so that the FUEL Master can pick them up for control.
300
301 **NOTE**: AArch64 target nodes are expected to support PXE booting an
302 EFI binary, i.e. an EFI-stubbed GRUB2 bootloader.
303
304 **NOTE**: UEFI (EDK2) firmware is **highly** recommended, becoming
305 the **de facto** standard for ARMv8 nodes.
306
307 #. Enable PXE booting
308
309    - For every controller and compute server: enable PXE Booting as the first boot device in the UEFI (EDK2) boot order menu and hard disk as the second boot device in the same menu.
310
311 #. Reboot all the control and compute blades.
312
313 #. Wait for the availability of nodes showing up in the Fuel GUI.
314
315    - Connect to the FUEL UI via the URL provided in the Console (default: https://10.20.0.2:8443)
316
317    - Wait until all nodes are displayed in top right corner of the Fuel GUI: Total nodes and Unallocated nodes (see figure below).
318
319    .. figure:: img/nodes.png
320
321
322 Install additional Plugins/Features on the FUEL node
323 ----------------------------------------------------
324
325 #. SSH to your FUEL node (e.g. root@10.20.0.2  pwd: r00tme)
326
327 #. Select wanted plugins/features from the /opt/opnfv/ directory.
328
329 #. Install the wanted plugin with the command:
330
331     .. code-block:: bash
332
333         $ fuel plugins --install /opt/opnfv/<plugin-name>-<version>.<arch>.rpm
334
335     Expected output (see figure below):
336
337     .. code-block:: bash
338
339         Plugin ....... was successfully installed.
340
341     **NOTE**: AArch64 Brahmaputra 3.0 ships only with Opendaylight plugin,
342     see *Reference 15*.
343
344    .. figure:: img/plugin_install.png
345
346 Create an OpenStack Environment
347 -------------------------------
348
349 #. Connect to Fuel WEB UI with a browser (default: https://10.20.0.2:8443) (login admin/admin)
350
351 #. Create and name a new OpenStack environment, to be installed.
352
353    .. figure:: img/newenv.png
354
355 #. Select "<Liberty on Ubuntu 14.04 (aarch64)>" and press <Next>
356
357 #. Select "compute virtulization method".
358
359    - Select "QEMU-KVM as hypervisor" and press <Next>
360
361 #. Select "network mode".
362
363    - Select "Neutron with ML2 plugin"
364
365    - Select "Neutron with tunneling segmentation" (Required when using the ODL plugin)
366
367    - Press <Next>
368
369 #. Select "Storage Back-ends".
370
371    - Select "Ceph for block storage" and press <Next>
372
373 #. Select "additional services" you wish to install.
374
375    - Check option "Install Ceilometer (OpenStack Telemetry)" and press <Next>
376
377 #. Create the new environment.
378
379    - Click <Create> Button
380
381 Configure the network environment
382 ---------------------------------
383
384 #. Open the environment you previously created.
385
386 #. Open the networks tab and select the "default Node Networks group to" on the left pane (see figure below).
387
388    .. figure:: img/network.png
389
390 #. Update the Public network configuration and change the following fields to appropriate values:
391
392    - CIDR to <CIDR for Public IP Addresses>
393
394    - IP Range Start to <Public IP Address start>
395
396    - IP Range End to <Public IP Address end>
397
398    - Gateway to <Gateway for Public IP Addresses>
399
400    - Check <VLAN tagging>.
401
402    - Set appropriate VLAN id.
403
404 #. Update the Storage Network Configuration
405
406    - Set CIDR to appropriate value  (default 192.168.1.0/24)
407
408    - Set IP Range Start to appropriate value (default 192.168.1.1)
409
410    - Set IP Range End to appropriate value (default 192.168.1.254)
411
412    - Set vlan to appropriate value  (default 102)
413
414 #. Update the Management network configuration.
415
416    - Set CIDR to appropriate value (default 192.168.0.0/24)
417
418    - Set IP Range Start to appropriate value (default 192.168.0.1)
419
420    - Set IP Range End to appropriate value (default 192.168.0.254)
421
422    - Check <VLAN tagging>.
423
424    - Set appropriate VLAN id. (default 101)
425
426 #. Update the Private Network Information
427
428    - Set CIDR to appropriate value (default 192.168.2.0/24
429
430    - Set IP Range Start to appropriate value (default 192.168.2.1)
431
432    - Set IP Range End to appropriate value (default 192.168.2.254)
433
434    - Check <VLAN tagging>.
435
436    - Set appropriate VLAN tag (default 103)
437
438 #. Select the "Neutron L3 Node Networks group" on the left pane.
439
440    .. figure:: img/neutronl3.png
441
442 #. Update the Floating Network configuration.
443
444    - Set the Floating IP range start (default 172.16.0.130)
445
446    - Set the Floating IP range end (default 172.16.0.254)
447
448    - Set the Floating network name (default admin_floating_net)
449
450 #. Update the Internal Network configuration.
451
452    - Set Internal network CIDR to an appropriate value (default 192.168.111.0/24)
453
454    - Set Internal network gateway to an appropriate value
455
456    - Set the Internal network name (default admin_internal_net)
457
458 #. Update the Guest OS DNS servers.
459
460    - Set Guest OS DNS Server values appropriately
461
462 #. Save Settings.
463
464 #. Select the "Other Node Networks group" on the left pane(see figure below).
465
466    .. figure:: img/other.png
467
468 #. Update the Public network assignment.
469
470    - Check the box for "Assign public network to all nodes" (Required by OpenDaylight)
471
472 #. Update Host OS DNS Servers.
473
474    - Provide the DNS server settings
475
476 #. Update Host OS NTP Servers.
477
478    - Provide the NTP server settings
479
480 Select Hypervisor type
481 ----------------------
482
483 #. In the FUEL UI of your Environment, click the "Settings" Tab
484
485 #. Select Compute on the left side pane (see figure below)
486
487    - Check the KVM box and press "Save settings"
488
489    .. figure:: img/compute.png
490
491 Enable Plugins
492 --------------
493
494 #. In the FUEL UI of your Environment, click the "Settings" Tab
495
496 #. Select Other on the left side pane (see figure below)
497
498    - Enable and configure the plugins of your choice
499
500    .. figure:: img/plugins_aarch64.png
501
502 Allocate nodes to environment and assign functional roles
503 ---------------------------------------------------------
504
505 #. Click on the "Nodes" Tab in the FUEL WEB UI (see figure below).
506
507     .. figure:: img/addnodes.png
508
509 #. Assign roles (see figure below).
510
511     - Click on the <+Add Nodes> button
512
513     - Check <Controller>, <Telemetry - MongoDB>  and optionally an SDN Controller role (OpenDaylight controller) in the Assign Roles Section.
514
515     - Check one node which you want to act as a Controller from the bottom half of the screen
516
517     - Click <Apply Changes>.
518
519     - Click on the <+Add Nodes> button
520
521     - Check the <Controller> and <Storage - Ceph OSD> roles.
522
523     - Check the two next nodes you want to act as Controllers from the bottom half of the screen
524
525     - Click <Apply Changes>
526
527     - Click on <+Add Nodes> button
528
529     - Check the <Compute> and <Storage - Ceph OSD> roles.
530
531     - Check the Nodes you want to act as Computes from the bottom half of the screen
532
533     - Click <Apply Changes>.
534
535     .. figure:: img/computelist.png
536
537 #. Configure interfaces (see figure below).
538
539     - Check Select <All> to select all allocated nodes
540
541     - Click <Configure Interfaces>
542
543     - Assign interfaces (bonded) for mgmt-, admin-, private-, public-
544       and storage networks
545
546     - Click <Apply>
547
548     .. figure:: img/interfaceconf.png
549
550 OPTIONAL - UNTESTED - Set Local Mirror Repos
551 ---------------------------------
552
553 **NOTE**: AArch64 Brahmaputra 3.0 does not fully support local Ubuntu mirrors,
554 or at least does not ship with arm64 packages in local repos by default.
555 In order to use local (partial) Ubuntu mirrors, one should add arm64 packages
556 by hand to the existing amd64 mirrors and re-generate repo metadata.
557 Local MOS/Auxiliary repos contain packages for both amd64 and arm64.
558
559 **NOTE**: Below instruction assume you already added (by hand) arm64
560 Ubuntu necessary packages to the local repository!
561
562 The following steps can be executed if you are in an environment with
563 no connection to the Internet. The Fuel server delivers a local repo
564 that can be used for installation / deployment of openstack.
565
566 #. In the Fuel UI of your Environment, click the Settings Tab and select General from the left pane.
567
568    - Replace the URI values for the "Name" values outlined below:
569
570    - "ubuntu" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty main"
571
572    - "ubuntu-security" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-security main"
573
574    - "ubuntu-updates" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-updates main"
575
576    - "mos" URI="deb http://<ip-of-fuel-server>::8080/liberty-8.0/ubuntu/x86_64 mos8.0 main restricted"
577
578    - "Auxiliary" URI="deb http://<ip-of-fuel-server>:8080/liberty-8.0/ubuntu/auxiliary auxiliary main restricted"
579
580    - Click <Save Settings> at the bottom to Save your changes
581
582 Target specific configuration
583 -----------------------------
584
585 #. [AArch64 specific] Configure MySQL WSREP SST provider
586
587    **NOTE**: This option is only available for ArmbandFuel@OPNFV, since it
588    currently only affects AArch64 targets (see *Reference 15*).
589
590    When using some AArch64 platforms as controller nodes, WSREP SST
591    synchronisation using default backend provider (xtrabackup-v2) might fail,
592    so a mechanism that allows selecting a different WSREP SST provider
593    has been introduced.
594
595    In the FUEL UI of your Environment, click the <Settings> tab, click
596    <OpenStack Services> on the left side pane (see figure below), then
597    select one of the following options:
598
599    - xtrabackup-v2 (default provider, AArch64 stability issues);
600
601    - rsync (AArch64 validated, better or comparable speed to xtrabackup,
602      takes the donor node offline during state transfer);
603
604    - mysqldump (untested);
605
606    .. figure:: img/fuelwsrepsst.png
607
608 #. Set up targets for provisioning with non-default "Offloading Modes"
609
610    Some target nodes may require additional configuration after they are
611    PXE booted (bootstrapped); the most frequent changes are in defaults
612    for ethernet devices' "Offloading Modes" settings (e.g. some targets'
613    ethernet drivers may strip VLAN traffic by default).
614
615    If your target ethernet drivers have wrong "Offloading Modes" defaults,
616    in "Configure interfaces" page (described above), expand affected
617    interface's "Offloading Modes" and [un]check the relevant settings
618    (see figure below):
619
620    .. figure:: img/offloadingmodes.png
621
622 #. Set up targets for "Verify Networks" with non-default "Offloading Modes"
623
624    **NOTE**: Check *Reference 15* for an updated and comprehensive list of
625    known issues and/or limitations, including "Offloading Modes" not being
626    applied during "Verify Networks" step.
627
628    Setting custom "Offloading Modes" in Fuel GUI will only apply those settings
629    during provisiong and **not** during "Verify Networks", so if your targets
630    need this change, you have to apply "Offloading Modes" settings by hand
631    to bootstrapped nodes.
632
633    **E.g.**: Our driver has "rx-vlan-filter" default "on" (expected "off") on
634    the Openstack interface(s) "eth1", preventing VLAN traffic from passing
635    during "Verify Networks".
636
637    - From Fuel master console identify target nodes admin IPs (see figure below):
638
639      .. code-block:: bash
640
641          $ fuel nodes
642
643      .. figure:: img/fuelconsole1.png
644
645    - SSH into each of the target nodes and disable "rx-vlan-filter" on the
646      affected physical interface(s) allocated for OpenStack traffic (eth1):
647
648      .. code-block:: bash
649
650          $ ssh root@10.20.0.6 ethtool -K eth1 rx-vlan-filter off
651
652    - Repeat the step above for all affected nodes/interfaces in the POD.
653
654 Verify Networks
655 ---------------
656
657 It is important that the Verify Networks action is performed as it will verify
658 that communicate works for the networks you have setup, as well as check that
659 packages needed for a successful deployment can be fetched.
660
661 #. From the FUEL UI in your Environment, Select the Networks Tab and select "Connectivity check" on the left pane (see figure below)
662
663    - Select <Verify Networks>
664
665    - Continue to fix your topology (physical switch, etc) until the "Verification Succeeded" and "Your network is configured correctly" message is shown
666
667    .. figure:: img/verifynet.png
668
669
670 Deploy Your Environment
671 -----------------------
672
673 38. Deploy the environment.
674
675     - In the Fuel GUI, click on the "Dashboard" Tab.
676
677     - Click on <Deploy Changes> in the "Ready to Deploy?" section
678
679     - Examine any information notice that pops up and click <Deploy>
680
681     Wait for your deployment to complete, you can view the "Dashboard"
682     Tab to see the progress and status of your deployment.
683
684 Installation health-check
685 =========================
686
687 #. Perform system health-check (see figure below)
688
689     - Click the "Health Check" tab inside your Environment in the FUEL Web UI
690
691     - Check <Select All> and Click <Run Tests>
692
693     - Allow tests to run and investigate results where appropriate
694
695     - Check *Reference 15* for known issues / limitations on AArch64, like
696       unsupported migration tests when using a GICv3 interrupt controller
697
698     .. figure:: img/health.png
699
700 References
701 ==========
702
703 OPNFV
704 -----
705
706 1) `OPNFV Home Page <http://www.opnfv.org>`_
707
708 2) `OPNFV documentation- and software downloads <https://www.opnfv.org/software/download>`_
709
710 OpenStack
711 ---------
712
713 3) `OpenStack Liberty Release artifacts <http://www.openstack.org/software/liberty>`_
714
715 4) `OpenStack documentation <http://docs.openstack.org>`_
716
717 OpenDaylight
718 ------------
719
720 5) `OpenDaylight artifacts <http://www.opendaylight.org/software/downloads>`_
721
722 Fuel
723 ----
724 6) `The Fuel OpenStack project <https://wiki.openstack.org/wiki/Fuel>`_
725
726 7) `Fuel documentation overview <https://docs.fuel-infra.org/openstack/fuel/fuel-8.0/>`_
727
728 8) `Fuel planning guide <https://docs.fuel-infra.org/openstack/fuel/fuel-8.0/mos-planning-guide.html>`_
729
730 9) `Fuel quick start guide <https://docs.mirantis.com/openstack/fuel/fuel-8.0/quickstart-guide.html>`_
731
732 10) `Fuel operations guide <https://docs.mirantis.com/openstack/fuel/fuel-8.0/operations.html>`_
733
734 11) `Fuel Plugin Developers Guide <https://wiki.openstack.org/wiki/Fuel/Plugins>`_
735
736 12) `(N/A on AArch64) Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list>`_
737
738 Fuel in OPNFV
739 -------------
740
741 13) `OPNFV Installation instruction for the AArch64 Brahmaputra release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/armband/brahmaputra/docs/installation-instruction.html>`_
742
743 14) `OPNFV Build instruction for the AArch64 Brahmaputra release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/armband/brahmaputra/docs/build-instruction.html>`_
744
745 15) `OPNFV Release Note for the AArch64 Brahmaputra release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/armband/brahmaputra/docs/release-notes.html>`_