forked from netascode/terraform-mso-nac-ndo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.terraform-docs.yml
87 lines (54 loc) · 2.77 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
79
80
81
82
83
84
85
86
87
version: ">= 0.14.0"
formatter: markdown table
content: |-
[![Tests](https://github.com/netascode/terraform-mso-nac-ndo/actions/workflows/test.yml/badge.svg)](https://github.com/netascode/terraform-mso-nac-ndo/actions/workflows/test.yml)
# Terraform NDO Nexus-as-Code Module
A Terraform module to configure Nexus Dashboard Orchestrator (NDO).
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.
## Usage
This module supports an inventory driven approach, where a complete NDO 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:
- `system`: Manage system level configuration like banners
- `sites`: Enable sites in NDO
- `site_connectivity`: Manage Multi-Site connectivity configuration
- `tenants`: Configure tenants using NDO
- `schemas`: Configurations applied at the schema and template level (e.g., VRFs and Bridge Domains)
- `deploy_templates`: Automatically deploy templates
The full data model documentation is available here: https://developer.cisco.com/docs/nexus-as-code/#!data-model
The module currently supports only NDO version 3.7.
## Examples
Configuring a Tenant using YAML:
#### `ndo.yaml`
```hcl
{{ include "./examples/tenant_yaml/ndo.yaml" }}
```
#### `main.tf`
```hcl
{{ include "./examples/tenant_yaml/main.tf" }}
```
Configuring a Site using native HCL:
#### `main.tf`
```hcl
{{ include "./examples/site_hcl/main.tf" }}
```
## Issues
Depending on the exact configuration, there might be issues with the NDO API returning errors due to concurrent operations. In this case one can use the `parallelism=1` command line attribute to ensure all resource operations are executed in sequence.
```shell
$ terraform apply -parallelism=1
```
Alternatively, an environment variable can be used as well.
```shell
$ export TF_CLI_ARGS_apply="-parallelism=1"
```
{{ .Requirements }}
{{ .Inputs }}
{{ .Outputs }}
{{ .Providers }}
{{ .Resources }}
{{ .Modules }}
output:
file: README.md
mode: replace
sort:
enabled: true
by: required