https://github.com/netascode/terraform-nxos-config-validation
Perform syntactic and semantic validation of YAML model for Terraform NX-OS Configuration Module
https://github.com/netascode/terraform-nxos-config-validation
Last synced: 3 months ago
JSON representation
Perform syntactic and semantic validation of YAML model for Terraform NX-OS Configuration Module
- Host: GitHub
- URL: https://github.com/netascode/terraform-nxos-config-validation
- Owner: netascode
- Created: 2022-09-08T13:10:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-10T12:04:05.000Z (over 1 year ago)
- Last Synced: 2025-01-14T14:14:07.184Z (4 months ago)
- Language: Python
- Size: 11.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://github.com/netascode/terraform-nxos-config-validation/actions/workflows/test.yml)
# Validation of Terraform NX-OS Configuration Module
This repository contains [Yamale](https://github.com/23andMe/Yamale) schema and [iac-validate](https://github.com/netascode/iac-validate) rules to perform syntactic and semantic validation of YAML model for [Terraform NX-OS Configuration Module](https://github.com/netascode/terraform-nxos-config).
Example usage for correct YAML model file:
```shell
$ iac-validate -s schema.yaml -r rules nxos_model_example.yaml
$
```Example usage for incorrect YAML model file:
```shell
$ iac-validate -s schema.yaml -r rules nxos_model_example_with_errors.yaml
ERROR - Syntax error 'nxos_model_example_with_errors.yaml': vrfs.1.rd: Unexpected element
ERROR - Syntax error 'nxos_model_example_with_errors.yaml': vlans.3.vrf: Unexpected element
ERROR - Semantic error, rule 103.001: BGP peer template is not configured under root.bgp.template_peers (['root.bgp.vrfs.0.neighbors.0 - SPINE-PEERS2', 'root.bgp.vrfs.0.neighbors.1 - SPINE-PEERS3'])
ERROR - Semantic error, rule 100.001: VRF for ethernet interface is not configured under root.vrfs (['root.interfaces_ethernet.1/52.vrf - foo'])
ERROR - Semantic error, rule 100.002: VRF for loopback interface is not configured under root.vrfs (['root.interfaces_loopback.1.vrf - foo'])
ERROR - Semantic error, rule 101.001: Feature BGP is not enabled, but BGP configuraion is present. (['add `bgp` to root.features'])
$
```## Installation
This is the only package that needs to be installed is `iac-validate`. Python 3.6+ is required to install it.
`iac-validate` can be installed in a virtual environment using `pip`:
```shell
pip install iac-validate
```Reference: https://github.com/netascode/iac-validate#installation