9517be8ca6
Change If21a10c56f43a121d30aa802f2c89d31df97f121 modified nodepool to not use the inbuilt TaskManager but use openstackapi's task handling instead. The statsd arguments added here don't actually do anything and are ignored; an openstack.Connection() object doesn't setup the stats configuration. Things are somewhat working because of the STATSD_<HOST|PORT> environment variables -- openstacksdk notices these and turns on stats reporting. However, it uses the default prefix ('openstack.api') which is a regression over the previous behaviour of logging operations on a per-cloud basis. I have proposed the dependent-change that will allow setting the prefix for stats in the "metric" section of each cloud in the openstacksdk config file. This will allow users to return to the previous behaviour by setting each cloud with an individual prefix in the cloud configuration (or, indeed keep the current behaviour by not setting that). So along with removing the ineffective arguments, I've updated the relevant documentation and added a release note detailing this. Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/786814 Change-Id: I30e57084489d822dd6152d3e5712e3cd201372ae
94 lines
3.2 KiB
ReStructuredText
94 lines
3.2 KiB
ReStructuredText
:title: Installation
|
|
|
|
Installation
|
|
============
|
|
|
|
Nodepool consists of a long-running daemon which uses ZooKeeper
|
|
for coordination with Zuul.
|
|
|
|
External Requirements
|
|
---------------------
|
|
|
|
ZooKeeper
|
|
~~~~~~~~~
|
|
|
|
Nodepool uses ZooKeeper to coordinate image builds with its separate
|
|
image builder component. A single ZooKeeper instance running on the
|
|
Nodepool server is fine. Larger installations may wish to use a
|
|
multi-node ZooKeeper installation, in which case three nodes are
|
|
usually recommended.
|
|
|
|
Nodepool only needs to be told how to contact the ZooKeeper cluster;
|
|
it will automatically populate the ZNode structure as needed.
|
|
|
|
.. _statsd_configuration:
|
|
|
|
Statsd and Graphite
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
If you have a Graphite system with ``statsd``, Nodepool can be
|
|
configured to send information to it. Set the environment variable
|
|
``STATSD_HOST`` to the ``statsd`` hostname (and optionally
|
|
``STATSD_PORT`` if this should be different to the default ``8125``)
|
|
for the Nodepool daemon to enable this support.
|
|
|
|
If using the OpenStack driver, setting these variables will enable
|
|
``openstacksdk`` reporting. By default, ``openstacksdk`` will report
|
|
OpenStack API statistics prefixed with ``openstack.api``. To override
|
|
this, for example to report API statistics on a per-cloud basis, see
|
|
the OpenStack SDK configuration documentation on `metrics
|
|
<https://docs.openstack.org/openstacksdk/latest/user/guides/stats.html>`__.
|
|
|
|
Install Nodepool
|
|
----------------
|
|
|
|
Install Nodepool prerequisites.
|
|
|
|
Nodepool requires Python 3.6 or newer.
|
|
|
|
RHEL 7 / CentOS 7::
|
|
|
|
yum install libffi libffi-devel @development python python-devel
|
|
|
|
You may install Nodepool directly from PyPI with pip::
|
|
|
|
pip install nodepool
|
|
|
|
Or install directly from a git checkout with::
|
|
|
|
pip install .
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
Nodepool has one required configuration file, which defaults to
|
|
``/etc/nodepool/nodepool.yaml``. This can be changed with the ``-c`` option.
|
|
The Nodepool configuration file is described in :ref:`configuration`.
|
|
|
|
There is support for a secure file that is used to store nodepool
|
|
configurations that contain sensitive data. It currently only supports
|
|
specifying ZooKeeper credentials and diskimage env-vars.
|
|
If ZooKeeper credentials or diskimage env-vars are defined in both
|
|
configuration files, the data in the secure file takes precedence.
|
|
The secure file location can be changed with the ``-s`` option and follows
|
|
the same file format as the Nodepool configuration file.
|
|
|
|
.. warning::
|
|
|
|
Secrets stored in diskimage env-vars may be leaked by the elements
|
|
or in the image build logs. Before using sensitive information in
|
|
env-vars, please carefully audit the elements that are enabled and
|
|
ensure they are handling the environment safely.
|
|
|
|
There is an optional logging configuration file, specified with the ``-l``
|
|
option. The logging configuration file can accept either:
|
|
|
|
* the traditional ini python logging `configuration file format
|
|
<https://docs.python.org/2/library/logging.config.html#configuration-file-format>`_.
|
|
|
|
* a `.yml` or `.yaml` suffixed file that will be parsed and loaded as the newer
|
|
`dictConfig format
|
|
<https://docs.python.org/2/library/logging.config.html#configuration-dictionary-schema>`_.
|
|
|
|
The Nodepool configuration file is described in :ref:`configuration`.
|