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