Docs: add very simple architecture diagram
Change-Id: Ib0552cafd80c8a602c984cf6ca9f7f4ca8e687fe
diff --git a/doc/source/admin/components.rst b/doc/source/admin/components.rst
index 890405d..aa6d8c8 100644
--- a/doc/source/admin/components.rst
+++ b/doc/source/admin/components.rst
@@ -6,11 +6,37 @@
==========
Zuul is a distributed system consisting of several components, each of
-which is described below. All Zuul processes read the
-``/etc/zuul/zuul.conf`` file (an alternate location may be supplied on
-the command line) which uses an INI file syntax. Each component may
-have its own configuration file, though you may find it simpler to use
-the same file for all components.
+which is described below.
+
+
+.. graphviz::
+ :align: center
+
+ graph {
+ node [shape=box]
+ Gearman [shape=ellipse]
+ Gerrit [fontcolor=grey]
+ Zookeeper [shape=ellipse]
+ Nodepool
+ GitHub [fontcolor=grey]
+
+ Merger -- Gearman
+ Executor -- Gearman
+ Web -- Gearman
+
+ Gearman -- Scheduler;
+ Scheduler -- Gerrit;
+ Scheduler -- Zookeeper;
+ Zookeeper -- Nodepool;
+ Scheduler -- GitHub;
+ }
+
+
+
+All Zuul processes read the ``/etc/zuul/zuul.conf`` file (an alternate
+location may be supplied on the command line) which uses an INI file
+syntax. Each component may have its own configuration file, though
+you may find it simpler to use the same file for all components.
An example ``zuul.conf``:
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 1120bfc..76ee6bc 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -27,6 +27,7 @@
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = [
'sphinx.ext.autodoc',
+ 'sphinx.ext.graphviz',
'sphinxcontrib.blockdiag',
'sphinxcontrib.programoutput',
'zuul.sphinx.zuul',