From 0bbca02eec7305a073e9b38d48f6eaab6153c98d Mon Sep 17 00:00:00 2001 From: Will Miller Date: Thu, 20 Sep 2018 17:00:30 +0100 Subject: [PATCH] Migrate documentation to Sphinx --- .travis.yml | 3 + README.md | 120 ------------ README.rst | 8 + doc/requirements.txt | 1 + .../_static}/tenks_ansible_structure.png | Bin .../_static/tenks_networking_structure.png | Bin 0 -> 99845 bytes doc/source/architecture.rst | 49 +++++ doc/source/conf.py | 173 ++++++++++++++++++ doc/source/configuration.rst | 50 +++++ doc/source/development.rst | 10 + doc/source/index.rst | 20 ++ doc/source/install.rst | 8 + doc/source/limitations.rst | 12 ++ doc/source/run.rst | 38 ++++ setup.cfg | 2 +- tox.ini | 8 + 16 files changed, 381 insertions(+), 121 deletions(-) delete mode 100644 README.md create mode 100644 README.rst create mode 100644 doc/requirements.txt rename {assets => doc/source/_static}/tenks_ansible_structure.png (100%) create mode 100644 doc/source/_static/tenks_networking_structure.png create mode 100644 doc/source/architecture.rst create mode 100644 doc/source/conf.py create mode 100644 doc/source/configuration.rst create mode 100644 doc/source/development.rst create mode 100644 doc/source/index.rst create mode 100644 doc/source/install.rst create mode 100644 doc/source/limitations.rst create mode 100644 doc/source/run.rst diff --git a/.travis.yml b/.travis.yml index 1aab0ae..5e5e305 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,6 +31,9 @@ matrix: # Run coverage checks. - python: 3.5 env: TOX_ENV=cover + # Generate docs. + - python: 3.5 + env: TOX_ENV=docs install: # Install tox in a virtualenv to ensure we have an up to date version. diff --git a/README.md b/README.md deleted file mode 100644 index 7bdc014..0000000 --- a/README.md +++ /dev/null @@ -1,120 +0,0 @@ -# Tenks - -Tenks is a utility that manages virtual bare metal clusters for development and -testing purposes. - -## Getting Started - -### Pre-Requisites - -Tenks has dependencies on Ansible roles that are hosted by Ansible Galaxy. -Given that your virtualenv of choice is active and Ansible (>=2.6) is -installed inside it, Tenks' role dependencies can be installed by -`ansible-galaxy install --role-file=requirements.yml ---roles-path=ansible/roles/`. - -### Hosts - -Tenks uses Ansible inventory to manage hosts. A multi-host setup is therefore -supported, although the default hosts configuration will deploy an all-in-one -setup on the host where the `ansible-playbook` command is executed -(`localhost`). - -* Configuration management of the Tenks cluster is always performed on - `localhost`. -* The `hypervisors` group should not directly contain any hosts. Its sub-groups - must contain one or more system. Systems in its sub-groups will host a subset - of the nodes deployed by Tenks. - - * The `libvirt` group is a sub-group of `hypervisors`. Systems in this - group will act as hypervisors using the Libvirt provider. - -### Configuration - -An override file should be created to configure Tenks. Any variables specified -in this file will take precedence over their default settings in Tenks. This -will allow you to set options as necessary for your setup, without needing to -directly modify Tenks' variable files. An example override file can be found -in `ansible/override.yml.example`. - -Most of the configuration you will need to do relates to variables defined in -`ansible/host_vars/localhost`. You can set your own values for these in your -override file (mentioned above). In addition to other options, you will need to -define the types of node you'd like to be able to manage as a dict in -`node_types`, as well as the desired deployment specifications in `specs`. -Format and guidance for available options will be found within the variable -file. - -Broadly, most variables in `ansible/group_vars/*` have sensible defaults which -may be left as-is unless you have a particular need to configure them. A -notable exception to this is the variable `physnet_mappings` in -`ansible/group_vars/hypervisors`, which should map physical network names to -the device to use for that network: this can be a network interface, or an -existing OVS or Linux bridge. If these mappings are the same for all hosts in -your `hypervisors` group, you may set a single dict `physnet_mappings` in your -overrides file, and this will be used for all hosts. If different mappings are -required for different hosts, you will need to individually specify them: for a -host with hostname *myhost*, set `physnet_mappings` within the file -`ansible/host_vars/myhost`. - -### Commands - -Tenks has a variable `cmd` which specifies the command to be run. This variable -can be set in your override file (see above). The possible values it can take -are: - -* `deploy`: create a virtual cluster to the specification given. This is the - default command. -* `teardown`: tear down any existing virtual cluster with the specification - given. - -### Running Tenks - -Currently, Tenks does not have a CLI or wrapper. Deployment can be run by -calling `ansible-playbook --inventory ansible/inventory ansible/deploy.yml ---extra-vars=@override.yml`, where `override.yml` is the path to your override -file. - -The `deploy.yml` playbook will run deployment from start to finish; -`teardown.yml` is `deploy.yml`'s "mirror image" to tear down a cluster. These -playbooks automatically set `cmd` appropriately, and they contain various -constituent playbooks which perform different parts of the deployment. An -individual section of Tenks can be run separately by substituting -`ansible/deploy.yml` in the command above with the path to the playbook(s) you -want to run. The current playbooks can be seen in the Ansible structure diagram -in the *Development* section. Bear in mind that you will have to set `cmd` in -your override file if you are running any of the sub-playbooks individually. - -Once a cluster has been deployed, it can be reconfigured by modifying the Tenks -configuration and rerunning `deploy.yml`. Node specs can be changed (including -increasing/decreasing the number of nodes); node types can also be -reconfigured. Existing nodes will be preserved where possible. - -## Limitations - -The following is a non-exhaustive list of current known limitations of Tenks: - -* When using the Libvirt provider (currently the only provider), Tenks - hypervisors cannot co-exist with a containerised Libvirt daemon (for example, - as deployed by Kolla in the nova-libvirt container). Tenks will configure an - uncontainerised Libvirt daemon instance on the hypervisor, and this may - conflict with an existing containerised daemon. A workaround is to disable - the Nova virtualised compute service on each Tenks hypervisor if it is - present (for example, `docker stop nova_libvirt`) before running Tenks. - -## Development - -A diagram representing the Ansible structure of Tenks can be seen below. Blue -rectangles represent playbooks, green rounded rectangles represent task books, -red ellipses represent roles and yellow rhombi represent action plugins. - - - -![Tenks Ansible structure](assets/tenks_ansible_structure.png) diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..c456510 --- /dev/null +++ b/README.rst @@ -0,0 +1,8 @@ +Tenks +===== + +Tenks is a utility that manages virtual bare metal clusters for development and +testing purposes. + +Refer to the documentation in ``doc/`` for installation instructions, +configuration guidance and other information. diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 0000000..913b117 --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1 @@ +sphinx>=1.8.0 # BSD diff --git a/assets/tenks_ansible_structure.png b/doc/source/_static/tenks_ansible_structure.png similarity index 100% rename from assets/tenks_ansible_structure.png rename to doc/source/_static/tenks_ansible_structure.png diff --git a/doc/source/_static/tenks_networking_structure.png b/doc/source/_static/tenks_networking_structure.png new file mode 100644 index 0000000000000000000000000000000000000000..a3964da28630545c6429f6603d5be32cca8e5364 GIT binary patch literal 99845 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. Patches should be submitted for review +using a GitHub pull request. diff --git a/doc/source/index.rst b/doc/source/index.rst new file mode 100644 index 0000000..eff830a --- /dev/null +++ b/doc/source/index.rst @@ -0,0 +1,20 @@ +.. Tenks documentation master file, created by + sphinx-quickstart on Thu Sep 20 15:43:21 2018. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Tenks's documentation! +================================= + +Tenks is a utility that manages virtual bare metal clusters for development and +testing purposes. + +.. toctree:: + :maxdepth: 2 + + architecture + configuration + development + install + limitations + run diff --git a/doc/source/install.rst b/doc/source/install.rst new file mode 100644 index 0000000..200c86e --- /dev/null +++ b/doc/source/install.rst @@ -0,0 +1,8 @@ +Installation +=============== + +Tenks has dependencies on Ansible roles that are hosted by Ansible Galaxy. +Given that your virtualenv of choice is active and Ansible (>=2.6) is +installed inside it, Tenks' role dependencies can be installed by +``ansible-galaxy install --role-file=requirements.yml +--roles-path=ansible/roles/``. diff --git a/doc/source/limitations.rst b/doc/source/limitations.rst new file mode 100644 index 0000000..c0dd86d --- /dev/null +++ b/doc/source/limitations.rst @@ -0,0 +1,12 @@ +Limitations +=========== + +The following is a non-exhaustive list of current known limitations of Tenks: + +* When using the Libvirt provider (currently the only provider), Tenks + hypervisors cannot co-exist with a containerised Libvirt daemon (for example, + as deployed by Kolla in the nova-libvirt container). Tenks will configure an + uncontainerised Libvirt daemon instance on the hypervisor, and this may + conflict with an existing containerised daemon. A workaround is to disable + the Nova virtualised compute service on each Tenks hypervisor if it is + present (for example, ``docker stop nova_libvirt``) before running Tenks. diff --git a/doc/source/run.rst b/doc/source/run.rst new file mode 100644 index 0000000..fac0fd0 --- /dev/null +++ b/doc/source/run.rst @@ -0,0 +1,38 @@ +Running Tenks +============= + +Commands +-------- + +Tenks has a variable ``cmd`` which specifies the command to be run. This +variable can be set in your override file (see :ref:`configuration`). The +possible values it can take are: + +* ``deploy``: create a virtual cluster to the specification given. This is the + default command. +* ``teardown``: tear down any existing virtual cluster with the specification + given. + +Execution +--------- + +Currently, Tenks does not have a CLI or wrapper. Deployment can be run by +calling ``ansible-playbook --inventory ansible/inventory ansible/deploy.yml +--extra-vars=@override.yml``, where ``override.yml`` is the path to your +override file. + +The ``deploy.yml`` playbook will run deployment from start to finish; +``teardown.yml`` is ``deploy.yml``'s "mirror image" to tear down a cluster. +These playbooks automatically set ``cmd`` appropriately, and they contain +various constituent playbooks which perform different parts of the deployment. +An individual section of Tenks can be run separately by substituting +``ansible/deploy.yml`` in the command above with the path to the playbook(s) +you want to run. The current playbooks can be seen in the Ansible structure +diagram in :ref:`architecture`. Bear in mind that you will have to set +``cmd`` in your override file if you are running any of the sub-playbooks +individually. + +Once a cluster has been deployed, it can be reconfigured by modifying the Tenks +configuration and rerunning ``deploy.yml``. Node specs can be changed +(including increasing/decreasing the number of nodes); node types can also be +reconfigured. Existing nodes will be preserved where possible. diff --git a/setup.cfg b/setup.cfg index 00233c4..4d1e64c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,7 +2,7 @@ name = tenks summary = Deployment of virtual bare metal clusters with Tenks description-file = - README.md + README.rst author = Will Miller author-email = willm@stackhpc.com home-page = https://stackhpc.com diff --git a/tox.ini b/tox.ini index bec29c4..dfa3407 100644 --- a/tox.ini +++ b/tox.ini @@ -29,6 +29,14 @@ basepython = python2.7 commands = flake8 {posargs} +[testenv:docs] +basepython = python3 +deps = + -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky} + -r{toxinidir}/requirements.txt + -r{toxinidir}/doc/requirements.txt +commands = sphinx-build -W -b html doc/source doc/build/html + [testenv:cover] basepython = python3 setenv =