Generate CloudVision Tags¶
arista.avd.eos_designs can generate CloudVision Tags that can be applied to interfaces and/or devices. These tags can be used on CloudVision for during Topology view generation,
or used in searches/filters to select devices based on tags values.
Available Input Variables¶
| Variable | Type | Required | Default | Value Restrictions | Description |
|---|---|---|---|---|---|
| cv_tags_topology_type | String | Device type that CloudVision should use when generating the Topology like “leaf”, “spine”, “core”, “edge” or “member-leaf”. Defaults to the setting under node_type_keys. | |||
| generate_cv_tags | Dictionary | Generate CloudVision Tags based on AVD data. | |||
| topology_hints | Boolean | False |
Enable the generation of CloudVision Topology Tags (hints). | ||
| campus_fabric | Boolean | False |
PREVIEW: This option is marked as “preview”, meaning the data models or generated configuration can change at any time. Generate CloudVision device and interface Topology Tags for Campus fabric devices. Device is treated as a Campus fabric device if: - The campus variable is assigned, either as native Ansible variable or as part of the <node_type_keys.key> AVD data construct.- The generate_cv_tags.campus_fabric variable is set to True.When campus-related tags are generated for a device, generation of the DC-related tags is automatically disabled for that device. AVD generates the following device tags for the Campus fabric devices based on the provided Campus-related input variables: - Campus- Campus-Pod- Access-Pod- topology_hint_type- RoleThese tags are later used by CloudVision to render the correct network layout in the Topology view ( campusV2 network hierarchy) and Campus dashboards. |
||
| interface_tags | List, items: Dictionary | List of interface tags that should be generated. | |||
| - name | String | Required, Unique | Tag name to be assigned to generated tags. | ||
| data_path | String | Structured config field/key path to be used to find the value for the tag. Dot notation is supported to reference values inside dictionaries. For Example: ‘data_path: channel_group.id’ would set the tag with the value of the channel id of the interface. If there is no channel id, the tag is not created. data_path is ignored if value is set. |
|||
| value | String | Value to be assigned to the tag. | |||
| device_tags | List, items: Dictionary | List of device tags that should be generated. | |||
| - name | String | Required | Tag name to be assigned to generated tags. | ||
| data_path | String | Structured config field/key path to be used to find the value for the tag. Dot notation is supported to reference values inside dictionaries. For Example: ‘data_path: router_bfd.multihop.interval’ would set the tag with the value of the interval for multihop bfd. If this value is not specified in the structured config, the tag is not created. data_path is ignored if value is set. |
|||
| value | String | Value to be assigned to the tag. | |||
| custom_node_type_keys | List, items: Dictionary | Define Custom Node Type Keys, to specify the properties of each node type in the fabric. This allows for complete customization of the fabric layout and functionality. custom_node_type_keys should be defined in top level group_var for the fabric.These values will be combined with the defaults; custom node type keys named the same as a default node_type_key will replace the default. |
|||
| - key | String | Required, Unique | |||
| cv_tags_topology_type | String | Device type that CloudVision should use when generating the Topology like “leaf”, “spine”, “core”, “edge” or “member-leaf”. | |||
| node_type_keys | List, items: Dictionary | Define Node Type Keys, to specify the properties of each node type in the fabric. This allows for complete customization of the fabric layout and functionality. node_type_keys should be defined in top level group_var for the fabric.The default values will be overridden if this key is defined. If you need to change all the existing node_type_keys, it is recommended to copy the defaults and modify them.If you need to add custom node_type_keys, create them under custom_node_type_keys - if named identically to default node_type_keys entries,custom entries will replace the equivalent default entry. |
|||
| - key | String | Required, Unique | |||
| cv_tags_topology_type | String | Device type that CloudVision should use when generating the Topology like “leaf”, “spine”, “core”, “edge” or “member-leaf”. |
# Device type that CloudVision should use when generating the Topology like "leaf", "spine", "core", "edge" or "member-leaf". Defaults to the setting under node_type_keys.
cv_tags_topology_type: <str>
# Generate CloudVision Tags based on AVD data.
generate_cv_tags:
# Enable the generation of CloudVision Topology Tags (hints).
topology_hints: <bool; default=False>
# PREVIEW: This option is marked as "preview", meaning the data models or generated configuration can change at any time.
# Generate CloudVision device and interface Topology Tags for Campus fabric devices.
# Device is treated as a Campus fabric device if:
# - The `campus` variable is assigned, either as native Ansible variable or as part of the `<node_type_keys.key>` AVD data construct.
# - The `generate_cv_tags.campus_fabric` variable is set to `True`.
# When campus-related tags are generated for a device, generation of the DC-related tags is automatically disabled for that device.
# AVD generates the following device tags for the Campus fabric devices based on the provided Campus-related input variables:
# - `Campus`
# - `Campus-Pod`
# - `Access-Pod`
# - `topology_hint_type`
# - `Role`
# These tags are later used by CloudVision to render the correct network layout in the Topology view (`campusV2` network hierarchy) and Campus dashboards.
campus_fabric: <bool; default=False>
# List of interface tags that should be generated.
interface_tags:
# Tag name to be assigned to generated tags.
- name: <str; required; unique>
# Structured config field/key path to be used to find the value for the tag. Dot notation is supported to reference values inside dictionaries.
# For Example: 'data_path: channel_group.id' would set the tag with the value of the channel id of the interface. If there is no channel id, the tag is not created.
# `data_path` is ignored if `value` is set.
data_path: <str>
# Value to be assigned to the tag.
value: <str>
# List of device tags that should be generated.
device_tags:
# Tag name to be assigned to generated tags.
- name: <str; required>
# Structured config field/key path to be used to find the value for the tag. Dot notation is supported to reference values inside dictionaries.
# For Example: 'data_path: router_bfd.multihop.interval' would set the tag with the value of the interval for multihop bfd. If this value is not specified in the structured config, the tag is not created.
# `data_path` is ignored if `value` is set.
data_path: <str>
# Value to be assigned to the tag.
value: <str>
# Define Custom Node Type Keys, to specify the properties of each node type in the fabric.
# This allows for complete customization of the fabric layout and functionality.
# `custom_node_type_keys` should be defined in top level group_var for the fabric.
# These values will be combined with the defaults; custom node type keys named the same as a
# default node_type_key will replace the default.
custom_node_type_keys:
- key: <str; required; unique>
# Device type that CloudVision should use when generating the Topology like "leaf", "spine", "core", "edge" or "member-leaf".
cv_tags_topology_type: <str>
# Define Node Type Keys, to specify the properties of each node type in the fabric.
# This allows for complete customization of the fabric layout and functionality.
# `node_type_keys` should be defined in top level group_var for the fabric.
#
# The default values will be overridden if this key is defined.
# If you need to change all the existing `node_type_keys`, it is recommended to copy the defaults and modify them.
# If you need to add custom `node_type_keys`, create them under `custom_node_type_keys` - if named identically to default `node_type_keys` entries,
# custom entries will replace the equivalent default entry.
node_type_keys:
- key: <str; required; unique>
# Device type that CloudVision should use when generating the Topology like "leaf", "spine", "core", "edge" or "member-leaf".
cv_tags_topology_type: <str>
CloudVision Topology Tags¶
arista.avd.eos_designs can generate CloudVision Tags that assist CloudVision with rendering the Topology correctly.
It will attempt to generate what are called ‘hints’ for the following fields. These are picked up from the fabric variables if they are defined.
To enable generation of Topology Tags:
| Hint Tag Name | Description | Source of information |
|---|---|---|
topology_hint_type |
Indicates whether the node is a leaf, spine, core device etc. | cv_tags_topology_type if set, else node_type_keys.[].cv_tags_topology_type. |
topology_hint_fabric |
The overall fabric that the devices pertains to. Useful for multi-fabric deployments. | fabric_name |
topology_hint_datacenter |
The datacenter to which the devices belongs. Helpful for multi-dc deployments. | dc_name |
topology_hint_pod |
The pod to which the devices belongs. | pod_name |
topology_hint_rack |
The physical rack in which the device is located. | rack defined on node or node_group |
PREVIEW: CloudVision Tags for Campus deployments¶
Warning
The generation of CloudVision Tags for Campus deployments in the eos_designs role is in preview mode.
Everything is subject to change, is not supported and may not be complete.
If you have any questions, please leverage the GitHub discussions board
arista.avd.eos_designs can generate CloudVision Tags that assist CloudVision with rendering the Campus Topologies (supported on CloudVision as a Service (CVaaS) or “on-prem” CloudVision 2024.3.0 or later).
This specific use case is required to support Hybrid workflow of managing Campus fabrics with both AVD and CloudVision Studios where:
- AVD is leveraged to build the fabric, deploy network services and infrastructure-related endpoints (firewalls, routers, access points, etc.).
- Access Interface Configuration Studio (including it’s Quick Actions sub-feature) is leveraged for day-2 operations to configure port profiles and ports using CloudVision UI.
Both generate_cv_tags.topology_hints an generate_cv_tags.campus_fabric must be set to true to globally enable generation of the Campus Topology tags:
Once the generation of Campus Topology tags is globally enabled, assign the following variables - either as native Ansible variables or as part of the <node_type_keys.key> or node_type_keys AVD data constructs (the latter only applicable to the cv_tags_topology_type variable) - to all targeted Campus devices:
campuscampus_podcampus_access_pod(should not be assigned to Spines)cv_tags_topology_type(valid values for Campus deployments:spine,leaformember-leaf)

Note
Please note that generating Campus-related tags for a specific device disables the generation of DC-related tags for that device.
Example (only relevant configuration is shown):
# Spine Switches
l3spine:
defaults:
campus: AVD_CAMPUS
campus_pod: BUILDING_A
# IDF - Leaf Switches
l2leaf:
defaults:
campus: AVD_CAMPUS
campus_pod: BUILDING_A
node_groups:
- group: IDF1
campus_access_pod: IDF1
nodes:
- name: LEAF1A
- name: LEAF1B
- group: IDF3_AGG
nodes:
- name: LEAF3A
campus_access_pod: IDF3
- name: LEAF3B
campus_access_pod: IDF3
- group: IDF3_3C
campus_access_pod: IDF3
cv_tags_topology_type: "member-leaf"
Note that for standard Arista Universal Cloud Network designs (L3LS, L2LS and L2 Only) it is not mandatory to explicitly specify cv_tags_topology_type value for Campus Spine and Campus Leaf devices, as correct Campus-related cv_tags_topology_type values will be derived from the default values of the mapped node_type_keys:
| Node Type Key | Default cv_tags_topology_type |
|---|---|
| spine | spine |
| l3spine | spine |
| leaf | leaf |
| l2leaf | leaf |
| l3leaf | leaf |
cv_tags_topology_type must be explicitly set for all Campus Member-Leaf devices.
Providing these input variables will lead to the automatic generation of the following Campus-related CloudVision Tags:
| Campus Tag Name | Tag type | Description | Source of information |
|---|---|---|---|
topology_hint_network_type |
Device | Identifies associated CloudVision Topology hierarchy type. | Always set to campusV2. |
topology_hint_type |
Device | Identifies role of the device in CloudVision Campus Topology. | <node_type_keys.key>.nodes.[].cv_tags_topology_type, else <node_type_keys.key>.node_groups.[].nodes.[].cv_tags_topology_type, else <node_type_keys.key>.node_groups.[].cv_tags_topology_type, else <node_type_keys.key>.defaults.cv_tags_topology_type, else cv_tags_topology_type, else custom_node_type_keys.[].cv_tags_topology_type, else node_type_keys.[].cv_tags_topology_type. |
Role |
Device | Identifies role of the device in CloudVision Campus Topology. Used in CV Dashboards. | <node_type_keys.key>.nodes.[].cv_tags_topology_type, else <node_type_keys.key>.node_groups.[].nodes.[].cv_tags_topology_type, else <node_type_keys.key>.node_groups.[].cv_tags_topology_type, else <node_type_keys.key>.defaults.cv_tags_topology_type, else cv_tags_topology_type, else custom_node_type_keys.[].cv_tags_topology_type, else node_type_keys.[].cv_tags_topology_type. |
Campus |
Device | Identifies Campus fabric. | <node_type_keys.key>.nodes.[].campus, else <node_type_keys.key>.node_groups.[].nodes.[].campus, else <node_type_keys.key>.node_groups.[].campus, else <node_type_keys.key>.defaults.campus, else campus. |
Campus-Pod |
Device | Identifies Campus pod (spine devices and associated access pods). | <node_type_keys.key>.nodes.[].campus_pod, else <node_type_keys.key>.node_groups.[].nodes.[].campus_pod, else <node_type_keys.key>.node_groups.[].campus_pod, else <node_type_keys.key>.defaults.campus_pod, else campus_pod. |
Access-Pod |
Device | Identifies Campus access pod (Leaf and Member-Leaf devices). | <node_type_keys.key>.nodes.[].campus_access_pod, else <node_type_keys.key>.node_groups.[].nodes.[].campus_access_pod, else <node_type_keys.key>.node_groups.[].campus_access_pod, else <node_type_keys.key>.defaults.campus_access_pod, else campus_access_pod. |
Link-Type |
Interface | Identifies system responsible for managing interface (AVD/Studio) and it’s purpose (fabric/edge/endpoint/etc.). | ethernet_interfaces.[].peer_type. |
Warning
If cv_deploy is targeting Campus devices that are not yet registered with CloudVision Inventory and Topology studio - cv_deploy will currently register those devices skipping their Model and Interfaces. This will by default not allow Quick Actions feature of the Access Interface Configuration CloudVision Studio to manage such devices until all Network Updates related to these devices are Accepted in CloudVision UI.
This limitation will be addressed in AVD once CloudVision 2025.2.1 is released. After this release, automatic registration of new devices by cv_deploy in CloudVision Inventory and Topology studio will automatically include Model and Interfaces.
CloudVision Campus Dashboard and Campus egress interfaces¶
The CloudVision Campus Dashboard provides an overview of the Campus network state including bandwidth utilization of the fabric’s egress interfaces.

The Dashboard identifies a fabric’s egress interfaces by the presence of the Link-Type: Egress interface-level tag.
A new key, campus_link_type, has been added to the core_interfaces, l3_edge, network_ports, connected_endpoints, and l3_interfaces (under Network services) data models to provide a flexible way to add new interface-level Link-Type tags with an arbitrary value to the fabric interface(s) of your choice.
Set campus_link_type to ["Egress"] for any Fabric interfaces that should be treated as Egress interfaces in the Campus dashboard.
CloudVision Custom Tags¶
Custom Tags can have either a static or a dynamic value. Dynamic values come from the structured_config generated by eos_designs.
Any value that is not:
- a list
- a dictionary
- a value in a list
can be defined as the value for a tag. This allows for tags to be generated with values that are calculated for that device. Refer to the example below.
For interfaces, only the structured_config for the interface itself is considered.
Tip
Generate the structured_config first to get a better idea of which keys are available.
Warning
- Tag names cannot have the name of any existing system tags on CloudVision. System tags cannot be amended with this approach.
- If the key specified in
data_pathis not found, the tag is not generated. This avoids having a lot of empty tags. - Custom structured configuration will not be considered during generation of tags. Only configuration generated by
eos_designsitself.
To generate custom Tags with a static value:
generate_cv_tags:
device_tags:
- name: mytag
value: myvalue
interface_tags:
- name: myinterfacetag
value: myinterfacevalue
To generate custom Tags with a dynamic value: