Role configuration for eos_designs¶
Role configuration settings can be set either as regular inventory variables or directly as task_vars on the import_role
task.
Role default output directories¶
Default output directories can be updated by modifying the default role variables:
# Roles Defaults - ouptput directories
# Root directory where to build output structure
root_dir: '{{ inventory_dir }}'
# Documentation folders
# Main documentation folder
documentation_dir_name: 'documentation'
documentation_dir: '{{ root_dir }}/{{ documentation_dir_name }}'
# Fabric documentation
fabric_dir_name: 'fabric'
fabric_dir: '{{ documentation_dir }}/{{ fabric_dir_name }}'
# AVD configurations output
# Main output directory
output_dir_name: 'intended'
output_dir: '{{ root_dir }}/{{ output_dir_name }}'
# Output for structured YAML files:
structured_dir_name: 'structured_configs'
structured_dir: '{{ output_dir }}/{{ structured_dir_name }}'
Tip
You might need the outputs generated by AVD in a different folder than inventory (the default). If updating root_dir
, leverage a relative path from inventory_dir
to ensure consistent behavior. Example: root_dir: '{{ inventory_dir}/../outputs'
.
Input Variables Validation settings¶
Schema validation is built in to the central Action plugins used in AVD. Each plugin runs variable type conversion first and then performs validation of the converted data.
By default any data validation issues will trigger errors - blocking further processing. This behavior can be adjusted by setting the variable described below.
Danger
The input variable avd_data_validation_mode
now has a default value of error
, and while it can be set to warning
, this is highly discouraged.
All AVD code relies on the validation to ensure valid data, so the code assumes that the data is valid.
If the validation mode is set to warning
, execution will continue with invalid data, which can lead to hard-to-read errors or incorrect behavior.
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
avd_data_conversion_mode removed | String | Conversion Mode for AVD input data conversion. This key was removed. Support was removed in AVD version 5.0.0. |
|||
avd_data_validation_mode | String | error |
Valid Values: - error - warning |
Validation Mode for AVD input data validation. Input data validation will validate the input variables according to the schema. During validation, messages will generated with information about the host(s) and key(s) which failed validation. “error” will produce error messages and fail the task. “warning” will produce warning messages. |
# Validation Mode for AVD input data validation.
# Input data validation will validate the input variables according to the schema.
# During validation, messages will generated with information about the host(s) and key(s) which failed validation.
# "error" will produce error messages and fail the task.
# "warning" will produce warning messages.
avd_data_validation_mode: <str; "error" | "warning"; default="error">
Generation of facts, structured configuration and documentation¶
The following settings can be leveraged to control generation of facts, structured configuration and fabric documentation.
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
avd_eos_designs_debug | Boolean | False |
Dump all vars and facts per device after generating avd_switch_facts . |
||
avd_eos_designs_enforce_duplication_checks_across_all_models | Boolean | False |
PREVIEW: This option is marked as “preview”, while we refactor the code to conform to the described behavior. When this is enabled, the generation of Structured Config in eos_designs will prevent duplicate objects generatedby different input models. This will also improve performance since eos_designs will not maintain separate copied of the Structured Configuration.As an example, if you define an Ethernet interface under l3_edge and use the same interface for connectivity under servers :- With this option disabled (default), AVD will merge these configurations together for the interface and not raise an error. - With this option enabled, AVD will raise an error about duplicate interface definitions. |
||
avd_eos_designs_structured_config | Boolean | True |
Generate structured configuration per device. | ||
avd_eos_designs_unset_facts | Boolean | True |
Unset avd_switch_facts to gain a small performance improvement since Ansible needs to handle fewer variables. |
||
eos_designs_documentation | Dictionary | Control fabric documentation generation. |
|||
enable | Boolean | True |
Generate fabric-wide documentation. | ||
connected_endpoints | Boolean | False |
Include connected endpoints in the fabric-wide documentation. This is false by default to avoid cluttering documentation for projects with thousands of endpoints. |
||
topology_csv | Boolean | False |
Generate Topology CSV with all interfaces towards other devices. | ||
p2p_links_csv | Boolean | False |
Generate P2P links CSV with all routed point-to-point links between devices. | ||
toc | Boolean | True |
Generate the table of content(TOC) on fabric documentation. |
# Dump all vars and facts per device after generating `avd_switch_facts`.
avd_eos_designs_debug: <bool; default=False>
# PREVIEW: This option is marked as "preview", while we refactor the code to conform to the described behavior.
# When this is enabled, the generation of Structured Config in `eos_designs` will prevent duplicate objects generated
# by different input models. This will also improve performance since `eos_designs` will not maintain separate copied of the Structured Configuration.
# As an example, if you define an Ethernet interface under `l3_edge` and use the same interface for connectivity under `servers`:
# - With this option disabled (default), AVD will merge these configurations together for the interface and not raise an error.
# - With this option enabled, AVD will raise an error about duplicate interface definitions.
avd_eos_designs_enforce_duplication_checks_across_all_models: <bool; default=False>
# Generate structured configuration per device.
avd_eos_designs_structured_config: <bool; default=True>
# Unset `avd_switch_facts` to gain a small performance improvement since Ansible needs to handle fewer variables.
avd_eos_designs_unset_facts: <bool; default=True>
# Control fabric documentation generation.
eos_designs_documentation:
# Generate fabric-wide documentation.
enable: <bool; default=True>
# Include connected endpoints in the fabric-wide documentation.
# This is `false` by default to avoid cluttering documentation for projects with thousands of endpoints.
connected_endpoints: <bool; default=False>
# Generate Topology CSV with all interfaces towards other devices.
topology_csv: <bool; default=False>
# Generate P2P links CSV with all routed point-to-point links between devices.
p2p_links_csv: <bool; default=False>
# Generate the table of content(TOC) on fabric documentation.
toc: <bool; default=True>
Custom Templates¶
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
eos_designs_custom_templates | List, items: Dictionary | ||||
- template | String | Required | Template file. | ||
options | Dictionary | Template options. | |||
list_merge | String | append_rp |
Merge strategy for lists. | ||
strip_empty_keys | Boolean | True |
Filter out keys from the generated output if value is null/none/undefined. |