.. _config: Configuring Pavilion ==================== Pavilion is driven largely by configurations. This documentation page covers the ``pavilion.yaml`` file, which sets global pavilion settings, as well as how configuration directories are arranged and managed. See :ref:`tests.format` for information on test configurations. This documentation only covers a few important settings. For a full list of settings, use the ``pav show config --template`` command, which will give the full docs for each configuration option in the ``pavilion.yaml`` file. .. contents:: Finding the Pavilion.yaml file ------------------------------ Pavilion looks for its main ``pavilion.yaml`` config in the following hierarchy and uses the first one it finds. - The user's ``~/.pavilion`` directory. - The directory given via the ``PAV_CONFIG_DIR`` environment variable. The ``pavilion.yaml`` file can configure additional locations to look for test, mode, and host configs, as well as plugins using the ``config_dirs`` option. The ``~/.pavilion`` directory is only searched for ``pavilion.yaml`` by default, but searches for other configs there can be turned on in ``pavilion .yaml`` .. _config.config_dirs: Config Directories ------------------ Each pavilion config directory (Pavilion supports having more than one) can (optionally) have any of the sub-directories shown here. .. figure:: imgs/config_dir.png :alt: Pavilion Config Directory Config Directory Layout To generate this directory structure and a ``pavilion.yaml`` template file, run ``pav config setup ``. The ```` is where to put the configuration directory, and the ```` is where to put the working directory that will hold all of the test builds and run information. We usually deploy Pavilion in a structure that looks like this: - ``/pavilion`` - ``/pavilion/src`` (The Pavilion source checkout) - ``/pavilion/configs`` (The Pavilion configurations) - ``/pavilion/working_dir`` (The Pavilion working directory) Config Generation ~~~~~~~~~~~~~~~~~ As mentioned, Pavilion can have multiple configuration directories. Each of them (other than the primary one) should have a ``config.yaml`` file for settings specific to that directory. This is created automatically for you if you use the ``pav config create