forked from netascode/terraform-aci-nac-aci
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.terraform-docs.yml
78 lines (48 loc) · 2.79 KB
/
.terraform-docs.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
version: ">= 0.14.0"
formatter: markdown table
content: |-
[![Tests](https://github.com/netascode/terraform-aci-nac-aci/actions/workflows/test.yml/badge.svg)](https://github.com/netascode/terraform-aci-nac-aci/actions/workflows/test.yml)
# Terraform ACI Nexus-as-Code Module
A Terraform module to configure ACI.
This module is part of the Cisco [*Nexus-as-Code*](https://cisco.com/go/nexusascode) project. Its goal is to allow users to instantiate network fabrics in minutes using an easy to use, opinionated data model. It takes away the complexity of having to deal with references, dependencies or loops. By completely separating data (defining variables) from logic (infrastructure declaration), it allows the user to focus on describing the intended configuration while using a set of maintained and tested Terraform Modules without the need to understand the low-level ACI object model. More information can be found here: https://cisco.com/go/nexusascode.
A comprehensive example using this module is available here: https://github.com/netascode/nac-aci-comprehensive-example
## Usage
This module supports an inventory driven approach, where a complete ACI configuration or parts of it are either modeled in one or more YAML files or natively using Terraform variables.
There are six configuration sections which can be selectively enabled or disabled using module flags:
- `fabric_policies`: Configurations applied at the fabric level (e.g., fabric BGP route reflectors)
- `access_policies`: Configurations applied to external facing (downlink) interfaces (e.g., VLAN pools)
- `pod_policies`: Configurations applied at the pod level (e.g., TEP pool addresses)
- `node_policies`: Configurations applied at the node level (e.g., OOB node management address)
- `interface_policies`: Configurations applied at the interface level (e.g., assigning interface policy groups to physical ports)
- `tenants`: Configurations applied at the tenant level (e.g., VRFs and Bridge Domains)
The full data model documentation is available here: https://developer.cisco.com/docs/nexus-as-code/#!data-model
## Examples
Configuring a VLAN Pool using YAML:
#### `vlan_pool.yaml`
```hcl
{{ include "./examples/vlan_pool_yaml/vlan_pool.yaml" }}
```
#### `main.tf`
```hcl
{{ include "./examples/vlan_pool_yaml/main.tf" }}
````
Configuring a Banner using native HCL:
#### `main.tf`
```hcl
{{ include "./examples/banner_hcl/main.tf" }}
````
Additional example repositories:
- https://github.com/netascode/nac-aci-simple-example
- https://github.com/netascode/nac-aci-comprehensive-example
{{ .Requirements }}
{{ .Inputs }}
{{ .Outputs }}
{{ .Providers }}
{{ .Resources }}
{{ .Modules }}
output:
file: README.md
mode: replace
sort:
enabled: true
by: required