Use SVG graphics in HTML docs
* Pre-convert SVG images to PDF with Inkscape * Do not pre-convert SVG to JPG, let Sphinx choose the best image format (SVG or PDF) * Optimize diagram scaling for consistent font sizing and clean PDF layouts Change-Id: I22285f5284f3c396ebe98392fca3dc731b01d6fa
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
/_build
|
||||
/_images/*_svg.png
|
||||
/_images/*_svg.jpg
|
||||
/_images/*.pdf
|
||||
/.idea
|
||||
|
||||
21
Makefile
21
Makefile
@@ -15,9 +15,6 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
IMAGEDIRS = _images
|
||||
SVG2JPG = convert
|
||||
# JPGs will be resized to 600px width
|
||||
SVG2JPG_FLAGS = -resize 600x -quality 100%
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf pdf text man changes linkcheck doctest gettext
|
||||
|
||||
@@ -46,17 +43,17 @@ help:
|
||||
|
||||
clean:
|
||||
-rm -rf $(BUILDDIR)/*
|
||||
-@rm -f $(JPGs)
|
||||
-@rm -f $(PDFs)
|
||||
|
||||
# Pattern rule for converting SVG to JPG
|
||||
%_svg.jpg : %.svg
|
||||
$(SVG2JPG) $(SVG2JPG_FLAGS) $< $@
|
||||
# Pattern rule for converting SVG to PDF
|
||||
%.pdf : %.svg
|
||||
inkscape -f $< -A $@
|
||||
|
||||
# Build a list of SVG files to convert to JPGs
|
||||
JPGs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%_svg.jpg,$(wildcard $(dir)/*.svg)))
|
||||
|
||||
# Make a rule to build the JPGs
|
||||
images: $(JPGs)
|
||||
# Build a list of SVG files to convert to PDFs
|
||||
PDFs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%.pdf,$(wildcard $(dir)/*.svg)))
|
||||
|
||||
# Make a rule to build all images
|
||||
images: $(PDFs)
|
||||
|
||||
all: clean html dirhtml singlehtml latexpdf pdf
|
||||
|
||||
|
||||
12
README.md
12
README.md
@@ -36,8 +36,9 @@ And Sphinx necessary extensions:
|
||||
sudo pip install -r requirements.txt
|
||||
|
||||
In addition to these eggs you will need to install
|
||||
[PlantUML](http://plantuml.sourceforge.net/ "PlantUML") and
|
||||
[ImageMagick](http://www.imagemagick.org/ "ImageMagick").
|
||||
[PlantUML](http://plantuml.sourceforge.net/ "PlantUML"),
|
||||
[ImageMagick](http://www.imagemagick.org/ "ImageMagick"), and
|
||||
[Inkscape](http://inkscape.org/ "Inkscape").
|
||||
|
||||
To install PlantUML you run this wget process:
|
||||
|
||||
@@ -48,9 +49,10 @@ To install PlantUML you run this wget process:
|
||||
PlantumUML requires java:
|
||||
sudo apt-get install openjdk-7-jre
|
||||
|
||||
To edit SVG images we use [Inkscape](http://inkscape.org/ "Inkscape") but
|
||||
you may use any other SVG-capable tool you like. We're not picky.
|
||||
|
||||
We use [Inkscape](http://inkscape.org/ "Inkscape") to edit SVG images
|
||||
and convert them to PDF but you may use any other SVG-capable tool you
|
||||
like. We're not picky.
|
||||
|
||||
Building
|
||||
========
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 48 KiB |
@@ -90,4 +90,6 @@ clouds:
|
||||
Fuel is designed to maintain the OpenStack environment while providing
|
||||
the flexibility to adapt it to your configuration.
|
||||
|
||||
.. image:: /_images/how-it-works_svg.jpg
|
||||
.. image:: /_images/how-it-works.*
|
||||
:width: 80%
|
||||
:align: center
|
||||
|
||||
@@ -47,7 +47,8 @@ In practice, Fuel works as follows:
|
||||
Fuel is designed to enable you to maintain your environment, while giving you
|
||||
the flexibility to adapt it to your own business needs and scale.
|
||||
|
||||
.. image:: /_images/how-it-works_svg.jpg
|
||||
.. image:: /_images/how-it-works.*
|
||||
:width: 100%
|
||||
:align: center
|
||||
|
||||
Fuel comes with several pre-defined deployment configurations, plus
|
||||
|
||||
@@ -59,6 +59,7 @@ FlatDHCPManager (single-interface scheme)
|
||||
-----------------------------------------
|
||||
|
||||
.. image:: /_images/flatdhcpmanager-sh_scheme.jpg
|
||||
:width: 100%
|
||||
:align: center
|
||||
|
||||
In order for FlatDHCPManager to work, one designated switch port where each
|
||||
@@ -70,6 +71,10 @@ routed on the host machine according to the routing table. The default route
|
||||
will point to the gateway specified on the networks tab in the UI as the
|
||||
gateway for the Public network.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak
|
||||
|
||||
VLANManager
|
||||
------------
|
||||
|
||||
@@ -82,6 +87,7 @@ traffic from VMs of other projects. Again, like with FlatDHCPManager, switch
|
||||
ports must be configured as tagged (trunk) ports to allow this scheme to work.
|
||||
|
||||
.. image:: /_images/vlanmanager_scheme.jpg
|
||||
:width: 100%
|
||||
:align: center
|
||||
|
||||
.. raw:: pdf
|
||||
@@ -104,7 +110,7 @@ Configuring the network
|
||||
Once you choose a networking mode (FlatDHCP/VLAN), you must configure equipment
|
||||
accordingly. The diagram below shows an example configuration.
|
||||
|
||||
.. image:: /_images/physical-network.jpg
|
||||
.. image:: /_images/physical-network.png
|
||||
:width: 100%
|
||||
:align: center
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ of compromises as to the number and types of services that you can
|
||||
deploy. It is, however, extremely useful if you just want to see how
|
||||
OpenStack works from a user's point of view.
|
||||
|
||||
.. image:: /_images/deployment-simple_svg.jpg
|
||||
.. image:: /_images/deployment-simple.*
|
||||
:width: 60%
|
||||
:align: center
|
||||
|
||||
More commonly, your OpenStack installation will consist of multiple
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak
|
||||
|
||||
.. index:: Reference Architectures: Multi-node with HA
|
||||
|
||||
.. _Multi-node_HA:
|
||||
@@ -17,7 +13,8 @@ single points of failure. That's not to say, however, that you can't
|
||||
reduce hardware requirements by combining your storage, network, and controller
|
||||
nodes:
|
||||
|
||||
.. image:: /_images/deployment-ha-compact_svg.jpg
|
||||
.. image:: /_images/deployment-ha-compact.*
|
||||
:width: 80%
|
||||
:align: center
|
||||
|
||||
We'll take a closer look at the details of this deployment configuration in
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak
|
||||
|
||||
.. index:: Reference Architectures: Multi-node with HA Details
|
||||
|
||||
.. _Close_look_Multi-node_HA:
|
||||
@@ -9,13 +5,6 @@
|
||||
Details of Multi-node with HA Deployment
|
||||
========================================
|
||||
|
||||
In this section, you'll learn more about the Multi-node with HA
|
||||
deployment configuration and how it achieves high availability. As you may
|
||||
recall, this configuration looks something like this:
|
||||
|
||||
.. image:: /_images/deployment-ha-compact_svg.jpg
|
||||
:align: center
|
||||
|
||||
OpenStack services are interconnected by RESTful HTTP-based APIs and
|
||||
AMQP-based RPC messages. So redundancy for stateless OpenStack API
|
||||
services is implemented through the combination of Virtual IP (VIP)
|
||||
@@ -25,7 +14,8 @@ rely on their respective active/active and active/passive modes for high availab
|
||||
For example, RabbitMQ uses built-in clustering capabilities, while the
|
||||
database uses MySQL/Galera replication.
|
||||
|
||||
.. image:: /_images/ha-overview_svg.jpg
|
||||
.. image:: /_images/ha-overview.*
|
||||
:width: 100%
|
||||
:align: center
|
||||
|
||||
Lets take a closer look at what an OpenStack deployment looks like, and
|
||||
|
||||
@@ -48,7 +48,8 @@ of compromises as to the number and types of services that you can
|
||||
deploy. It is, however, extremely useful if you just want to see how
|
||||
OpenStack works from a user's point of view.
|
||||
|
||||
.. image:: /_images/deployment-simple_svg.jpg
|
||||
.. image:: /_images/deployment-simple.*
|
||||
:width: 60%
|
||||
:align: center
|
||||
|
||||
More commonly, your OpenStack installation will consist of multiple
|
||||
@@ -74,7 +75,8 @@ single points of failure. That's not to say, however, that you can't
|
||||
reduce hardware requirements by combining your storage, network, and controller
|
||||
nodes:
|
||||
|
||||
.. image:: /_images/deployment-ha-compact-red-hat_svg.jpg
|
||||
.. image:: /_images/deployment-ha-compact-red-hat.*
|
||||
:width: 80%
|
||||
:align: center
|
||||
|
||||
OpenStack services are interconnected by RESTful HTTP-based APIs and AMQP-based
|
||||
@@ -86,5 +88,6 @@ availability. For example, MySQL uses built-in replication capabilities (plus
|
||||
the help of Pacemaker), while QPID is offered in three independent brokers with
|
||||
virtual IP management to provide high availability.
|
||||
|
||||
.. image:: /_images/ha-overview-red-hat_svg.jpg
|
||||
.. image:: /_images/ha-overview-red-hat.*
|
||||
:width: 80%
|
||||
:align: center
|
||||
|
||||
@@ -21,7 +21,8 @@ You must keep in mind, however, that the database uses Galera to
|
||||
achieve HA, and Galera is a quorum-based system. That means that you must provide
|
||||
at least 3 controller nodes.
|
||||
|
||||
.. image:: /_images/logical-diagram-controller.svg
|
||||
.. image:: /_images/logical-diagram-controller.*
|
||||
:width: 80%
|
||||
:align: center
|
||||
|
||||
Every OpenStack controller runs HAProxy, which manages a single External
|
||||
@@ -63,7 +64,8 @@ as RabbitMQ and MySQL. They use the same approach that provides
|
||||
redundancy to the end-users of Horizon and REST APIs, reaching out to
|
||||
controller nodes using the VIP and going through HAProxy.
|
||||
|
||||
.. image:: /_images/logical-diagram-compute_svg.jpg
|
||||
.. image:: /_images/logical-diagram-compute.*
|
||||
:width: 80%
|
||||
:align: center
|
||||
|
||||
Storage Nodes
|
||||
@@ -76,5 +78,6 @@ achieve this, you are going to deploy Swift. This enables you to use
|
||||
it not only for storing VM images, but also for any other objects such
|
||||
as user files.
|
||||
|
||||
.. image:: /_images/logical-diagram-storage_svg.jpg
|
||||
.. image:: /_images/logical-diagram-storage.*
|
||||
:width: 80%
|
||||
:align: center
|
||||
|
||||
@@ -19,7 +19,8 @@ deployment is to allocate 4 nodes:
|
||||
|
||||
- 1 compute node
|
||||
|
||||
.. image:: /_images/deployment-ha-compact_svg.jpg
|
||||
.. image:: /_images/deployment-ha-compact.*
|
||||
:width: 80%
|
||||
:align: center
|
||||
|
||||
If you want to run storage separately from the controllers, you can do that as
|
||||
@@ -33,7 +34,8 @@ well by raising the bar to 9 nodes:
|
||||
|
||||
- 1 Compute node
|
||||
|
||||
.. image:: /_images/deployment-ha-full_svg.jpg
|
||||
.. image:: /_images/deployment-ha-full.*
|
||||
:width: 80%
|
||||
:align: center
|
||||
|
||||
Of course, you are free to choose how to deploy OpenStack based on the
|
||||
|
||||
@@ -83,7 +83,6 @@ NIC cards. They're utilized as follows:
|
||||
|
||||
The figure below illustrates the relevant nodes and networks in Neutron VLAN mode.
|
||||
|
||||
.. image:: /_images/080-networking-diagram_svg.jpg
|
||||
.. image:: /_images/080-networking-diagram.*
|
||||
:width: 75%
|
||||
:align: center
|
||||
|
||||
|
||||
|
||||
@@ -94,18 +94,18 @@ like this:
|
||||
|
||||
The most likely configuration for different number NICs on cluster nodes:
|
||||
|
||||
+------+--------------------------------------------+--------------------------------------------+
|
||||
| NICs | VLAN | GRE |
|
||||
+======+============================================+============================================+
|
||||
| 2 | Not supported | .. image:: /_images/q32_gre_2nic_svg.jpg |
|
||||
| | | :align: center |
|
||||
+------+--------------------------------------------+--------------------------------------------+
|
||||
| 3 | .. image:: /_images/q32_vlan_3nic_svg.jpg | .. image:: /_images/q32_gre_3nic_svg.jpg |
|
||||
| | :align: center | :align: center |
|
||||
+------+--------------------------------------------+--------------------------------------------+
|
||||
| 4 | .. image:: /_images/q32_vlan_4nic_svg.jpg | .. image:: /_images/q32_gre_4nic_svg.jpg |
|
||||
| | :align: center | :align: center |
|
||||
+------+--------------------------------------------+--------------------------------------------+
|
||||
+------+--------------------------------------+--------------------------------------+
|
||||
| NICs | VLAN | GRE |
|
||||
+======+======================================+======================================+
|
||||
| 2 | Not supported | .. image:: /_images/q32_gre_2nic.* |
|
||||
| | | :align: center |
|
||||
+------+--------------------------------------+--------------------------------------+
|
||||
| 3 | .. image:: /_images/q32_vlan_3nic.* | .. image:: /_images/q32_gre_3nic.* |
|
||||
| | :align: center | :align: center |
|
||||
+------+--------------------------------------+--------------------------------------+
|
||||
| 4 | .. image:: /_images/q32_vlan_4nic.* | .. image:: /_images/q32_gre_4nic.* |
|
||||
| | :align: center | :align: center |
|
||||
+------+--------------------------------------+--------------------------------------+
|
||||
|
||||
|
||||
Known limitations
|
||||
|
||||
Reference in New Issue
Block a user