From 4cdf55a6bb13e96ab6e002ac07c503eba438b42c Mon Sep 17 00:00:00 2001 From: Tomasz 'Zen' Napierala Date: Tue, 26 Jan 2016 16:22:29 +0100 Subject: [PATCH] Added internal architecture diagram and fixed some doc errors Added solar internal architecture diagram. Fixed doc generation errors. Change-Id: I0be39d9dbae7c19c633d6378f332bd8a14db3997 Closes-bug: #1538168 --- .../_static/solar_internal_architecture.png | Bin 0 -> 67387 bytes doc/source/architecture.rst | 7 ++++ doc/source/faq.rst | 30 ++++++++++++------ doc/source/index.rst | 1 + doc/source/installation.rst | 7 ++-- 5 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 doc/source/_static/solar_internal_architecture.png create mode 100644 doc/source/architecture.rst diff --git a/doc/source/_static/solar_internal_architecture.png b/doc/source/_static/solar_internal_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..d631f0e5c6dcfe69c6a0dbd826b16a1d3cf21ce2 GIT binary patch literal 67387 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 literal 0 HcmV?d00001 diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst new file mode 100644 index 00000000..753fd692 --- /dev/null +++ b/doc/source/architecture.rst @@ -0,0 +1,7 @@ +.. _architecture: + +=========================== +Solar Internal Architecture +=========================== + +.. image:: _static/solar_internal_architecture.png diff --git a/doc/source/faq.rst b/doc/source/faq.rst index 2e79fbef..1b00e7a1 100644 --- a/doc/source/faq.rst +++ b/doc/source/faq.rst @@ -7,12 +7,12 @@ FAQ .. _faq_hardcoded_params: -Why nodes/transports have hardcoded keys ip and other inputs ? +Why nodes/transports have hardcoded keys, ips and other inputs ? -------------------------------------------------------------- This is temporary situation, we will improve it in near future. -I want to use different keys +I want to use different SSH keys ---------------------------- Just update resource for example:: @@ -36,9 +36,15 @@ Just update resource:: How can I run solar celery worker ? ----------------------------------- -- If you use `vagrant` then you can just `service solar-celery start|restart` as `vagrant` user. -- If you have `gevent` installed then you can use utils/solar-celery script. You may need to adjust log files etc. -- You can spawn celery by hand too: ``celery multi start 2 -A solar.orchestration.runner -P prefork -c:1 1 -c:2 2 -Q:1 scheduler,system_log -Q:2 celery`` +- If you use `vagrant` then you can just `service solar-celery start|restart` +as `vagrant` user. +- If you have `gevent` installed then you can use utils/solar-celery script. +You may need to adjust log files etc. +- You can spawn celery by hand too: + +.. code-block:: bash + + celery multi start 2 -A solar.orchestration.runner -P prefork -c:1 1 -c:2 2 -Q:1 scheduler,system_log -Q:2 celery .. note:: @@ -50,9 +56,11 @@ How can I configure solar ? There are several places where we search for config values: 1. `.config` file in CWD or in path from `SOLAR_CONFIG` env variable -2. if env `SOLAR_CONFIG_OVERRIDE` contains valid path then it override previous values +2. if env `SOLAR_CONFIG_OVERRIDE` contains valid path then it override previous +values 3. `.config.override` in CWD -4. You can also set upper-cased env variable which matches one of those in config +4. You can also set upper-cased env variable which matches one of those in +config .. _faq_using_sqlbackend: @@ -69,11 +77,13 @@ For simplicity, but nothing stops you from changing these defaults:: What database can I use with solar ? ------------------------------------ -By default for simplicity we use `sqlite`. On our vagrant environment we use single node `riak`. -You can also use multiple node `riak`, with some strong consistent buckets. +By default for simplicity we use `sqlite`. On our vagrant environment we use +single node `riak`. +You can also use multiple nodes `riak`, with some strong consistent buckets. Where can I find solar examples ? --------------------------------- -Example resources, composer templates and examples itself are located: https://github.com/Mirantis/solar-resources +Example resources, composer templates and examples itself are located: +https://github.com/Mirantis/solar-resources diff --git a/doc/source/index.rst b/doc/source/index.rst index 984e25e9..8c0dc161 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -15,6 +15,7 @@ Contents: usage tutorials/index glossary + architecture resource resource_repository orchestration diff --git a/doc/source/installation.rst b/doc/source/installation.rst index fe121aa6..3279d8ac 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -23,14 +23,15 @@ Additional software `VirtualBox `_ 5.x, `Vagrant `_ 1.7.x -Note: Make sure that `Vagrant VirtualBox Guest plugin `_ is installed +Note: Make sure that `Vagrant VirtualBox Guest plugin +`_ is installed .. code-block:: bash vagrant plugin install vagrant-vbguest -Note: If you are using VirtualBox 5.0 on Linux system, it's worth uncommenting paravirtprovider -setting in `vagrant-settings.yaml` for speed improvements: +Note: If you are using VirtualBox 5.0 on Linux system, it's worth uncommenting +paravirtprovider setting in `vagrant-settings.yaml` for speed improvements: .. code-block:: bash