2026-06-04 20:43:51 +02:00
|
|
|
The structure file
|
2025-11-06 11:46:31 +01:00
|
|
|
=====================
|
|
|
|
|
|
2026-06-04 08:27:11 +02:00
|
|
|
Definition
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
.. glossary::
|
|
|
|
|
|
|
|
|
|
structure file
|
|
|
|
|
|
|
|
|
|
A structure file in the Rougail meaning is a YAML file that describes variables
|
|
|
|
|
and their dependencies.
|
|
|
|
|
There can be a lot of structure files located in many different folders.
|
|
|
|
|
|
|
|
|
|
Rougail reads all the structure files and loads them into a single object
|
|
|
|
|
that represents the whole :term:`context`.
|
|
|
|
|
|
2025-11-06 11:46:31 +01:00
|
|
|
The header of a structure file
|
|
|
|
|
-----------------------------------
|
|
|
|
|
|
2025-11-07 09:05:44 +01:00
|
|
|
A basic structure file is composed of:
|
|
|
|
|
|
|
|
|
|
- a YAML 1.2 standard header
|
|
|
|
|
- a version attribute
|
|
|
|
|
|
2025-11-06 11:46:31 +01:00
|
|
|
.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_000/firefox/00-proxy.yml
|
|
|
|
|
:language: yaml
|
|
|
|
|
:caption: An empty Rougail structure file.
|
|
|
|
|
:name: RougailStructureFirstVariableDescription
|
|
|
|
|
|
|
|
|
|
..
|
|
|
|
|
%YAML 1.2
|
|
|
|
|
---
|
|
|
|
|
version: 1.1
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
The structure file processing
|
|
|
|
|
----------------------------------
|
|
|
|
|
|
|
|
|
|
The structured files contain information that will be used by the consistency
|
|
|
|
|
handling system for structure validation.
|
|
|
|
|
|
|
|
|
|
.. figure:: images/schema.png
|
|
|
|
|
:alt: The Rougail process
|
|
|
|
|
:align: center
|
|
|
|
|
|
|
|
|
|
The Rougail process from structure files to Tiramisu valition handler object
|
|
|
|
|
|
|
|
|
|
The structured data
|
|
|
|
|
---------------------
|
|
|
|
|
|
2026-06-04 20:43:51 +02:00
|
|
|
All of the declaring variables and writing consistency is as simple as writing YAML.
|
2025-11-06 11:46:31 +01:00
|
|
|
|
2026-06-04 20:43:51 +02:00
|
|
|
We can declare variables and describe the relationships between variables in a declarative style (that is, in a YAML file).
|
2025-11-06 11:46:31 +01:00
|
|
|
|
|
|
|
|
Once the structure files are loaded by Rougail, the Tiramisu configuration management tool can check the consistency of the variables between them.
|
|
|
|
|
|
|
|
|
|
What contains exactly a :term:`structure file`?
|
|
|
|
|
-------------------------------------------------
|
|
|
|
|
|
|
|
|
|
A :term:`structure file` is a YAML file whose structure is described in this documentation page.
|
|
|
|
|
|
2026-06-04 20:43:51 +02:00
|
|
|
A structure file contains a set of variables, usable in your application, for example in a template
|
2025-11-06 11:46:31 +01:00
|
|
|
to generate configuration files.
|
|
|
|
|
|
2026-01-05 13:59:56 +01:00
|
|
|
:term:`Families <family>` and :term:`variables <variable>` can be defined in several structure files. These structure files are then aggregated.
|
2025-11-06 11:46:31 +01:00
|
|
|
|
|
|
|
|
If you want to see the contents of a structure file, you can have a look at the :ref:`tutorial with a real world sample. <tutorial>`
|