Skip to content

Commit

Permalink
Merge branch 'main' into interface-state
Browse files Browse the repository at this point in the history
  • Loading branch information
andbyrne authored Oct 29, 2024
2 parents b0271f0 + c4d474b commit 9123149
Show file tree
Hide file tree
Showing 15 changed files with 61 additions and 51 deletions.
66 changes: 33 additions & 33 deletions aci_interface_policies.tf

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions aci_tenants.tf
Original file line number Diff line number Diff line change
Expand Up @@ -1460,6 +1460,7 @@ locals {
bgp_route_summarization = try(subnet.bgp_route_summarization, local.defaults.apic.tenants.l3outs.external_endpoint_groups.subnets.bgp_route_summarization)
bgp_route_summarization_policy = try(subnet.bgp_route_summarization_policy, "")
ospf_route_summarization = try(subnet.ospf_route_summarization, local.defaults.apic.tenants.l3outs.external_endpoint_groups.subnets.ospf_route_summarization)
eigrp_route_summarization = try(subnet.eigrp_route_summarization, local.defaults.apic.tenants.l3outs.external_endpoint_groups.subnets.eigrp_route_summarization)
route_control_profiles = [for rcp in try(subnet.route_control_profiles, []) : {
name = rcp.name
direction = try(rcp.direction, local.defaults.apic.tenants.l3outs.external_endpoint_groups.subnets.route_control_profiles.direction)
Expand Down Expand Up @@ -2231,6 +2232,7 @@ locals {
tenant = tenant.name
name = "${policy.name}${local.defaults.apic.tenants.policies.route_control_route_maps.name_suffix}"
description = try(policy.description, "")
type = try(policy.type, local.defaults.apic.tenants.policies.route_control_route_maps.type)
contexts = [for ctx in try(policy.contexts, []) : {
name = "${ctx.name}${local.defaults.apic.tenants.policies.route_control_route_maps.contexts.name_suffix}"
description = try(ctx.description, "")
Expand All @@ -2251,6 +2253,7 @@ module "aci_route_control_route_map" {
tenant = each.value.tenant
name = each.value.name
description = each.value.description
type = each.value.type
contexts = each.value.contexts

depends_on = [
Expand Down
4 changes: 2 additions & 2 deletions defaults/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -747,15 +747,13 @@ defaults:
interface_policies:
nodes:
interfaces:
from_module: 1
module: 1
fabric: false
shutdown: false
sub_ports:
shutdown: false
fexes:
interfaces:
from_module: 1
module: 1
shutdown: false

Expand Down Expand Up @@ -983,6 +981,7 @@ defaults:
aggregate_shared_route_control: false
bgp_route_summarization: false
ospf_route_summarization: false
eigrp_route_summarization: false
route_control_profiles:
name_suffix: ""
direction: import
Expand Down Expand Up @@ -1254,6 +1253,7 @@ defaults:
tag: 4294967295
route_control_route_maps:
name_suffix: ""
type: combinable
contexts:
name_suffix: ""
action: "permit"
Expand Down
2 changes: 1 addition & 1 deletion modules/terraform-aci-endpoint-security-group/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ variable "tag_selectors" {

validation {
condition = alltrue([
for ts in var.tag_selectors : can(regex("^[a-zA-Z0-9_.\\\\-:]{0,64}$", ts.key))
for ts in var.tag_selectors : can(regex("^[a-zA-Z0-9_.\\\\:-]{0,64}$", ts.key))
])
error_message = "`key`: Allowed characters: `a`-`z`, `A`-`Z`, `0`-`9`, `_`, `.`, `\\`, `-`, `:`. Maximum characters: 64."
}
Expand Down
2 changes: 1 addition & 1 deletion modules/terraform-aci-external-endpoint-group/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ module "aci_external_endpoint_group" {
| <a name="input_qos_class"></a> [qos\_class](#input\_qos\_class) | QoS class. Choices: `level1`, `level2`, `level3`, `level4`, `level5`, `level6`, `unspecified`. | `string` | `"unspecified"` | no |
| <a name="input_target_dscp"></a> [target\_dscp](#input\_target\_dscp) | Target DSCP. Choices: `CS0`, `CS1`, `AF11`, `AF12`, `AF13`, `CS2`, `AF21`, `AF22`, `AF23`, `CS3`, `AF31`, `AF32`, `AF33`, `CS4`, `AF41`, `AF42`, `AF43`, `CS5`, `VA`, `EF`, `CS6`, `CS7`, `unspecified` or a number between `0` and `63`. | `string` | `"unspecified"` | no |
| <a name="input_route_control_profiles"></a> [route\_control\_profiles](#input\_route\_control\_profiles) | List of route control profiles. Choices `direction`: `import`, `export`. | <pre>list(object({<br> name = string<br> direction = optional(string, "import")<br> }))</pre> | `[]` | no |
| <a name="input_subnets"></a> [subnets](#input\_subnets) | List of subnets. Default value `import_route_control`: false. Default value `export_route_control`: false. Default value `shared_route_control`: false. Default value `import_security`: true. Default value `shared_security`: false. Default value `aggregate_import_route_control`: false. Default value `aggregate_export_route_control`: false. Default value `aggregate_shared_route_control`: false. Default value `bgp_route_summarization`: false. Default value `ospf_route_summarization`: false. | <pre>list(object({<br> name = optional(string, "")<br> annotation = optional(string, null)<br> prefix = string<br> import_route_control = optional(bool, false)<br> export_route_control = optional(bool, false)<br> shared_route_control = optional(bool, false)<br> import_security = optional(bool, true)<br> shared_security = optional(bool, false)<br> aggregate_import_route_control = optional(bool, false)<br> aggregate_export_route_control = optional(bool, false)<br> aggregate_shared_route_control = optional(bool, false)<br> bgp_route_summarization = optional(bool, false)<br> bgp_route_summarization_policy = optional(string, "")<br> ospf_route_summarization = optional(bool, false)<br> route_control_profiles = optional(list(object({<br> name = string<br> direction = optional(string, "import")<br> })), [])<br> }))</pre> | `[]` | no |
| <a name="input_subnets"></a> [subnets](#input\_subnets) | List of subnets. Default value `import_route_control`: false. Default value `export_route_control`: false. Default value `shared_route_control`: false. Default value `import_security`: true. Default value `shared_security`: false. Default value `aggregate_import_route_control`: false. Default value `aggregate_export_route_control`: false. Default value `aggregate_shared_route_control`: false. Default value `bgp_route_summarization`: false. Default value `ospf_route_summarization`: false. Default value `eigrp_route_summarization`: false. | <pre>list(object({<br> name = optional(string, "")<br> annotation = optional(string, null)<br> prefix = string<br> import_route_control = optional(bool, false)<br> export_route_control = optional(bool, false)<br> shared_route_control = optional(bool, false)<br> import_security = optional(bool, true)<br> shared_security = optional(bool, false)<br> aggregate_import_route_control = optional(bool, false)<br> aggregate_export_route_control = optional(bool, false)<br> aggregate_shared_route_control = optional(bool, false)<br> bgp_route_summarization = optional(bool, false)<br> bgp_route_summarization_policy = optional(string, "")<br> ospf_route_summarization = optional(bool, false)<br> eigrp_route_summarization = optional(bool, false)<br> route_control_profiles = optional(list(object({<br> name = string<br> direction = optional(string, "import")<br> })), [])<br> }))</pre> | `[]` | no |
| <a name="input_contract_consumers"></a> [contract\_consumers](#input\_contract\_consumers) | List of contract consumers. | `list(string)` | `[]` | no |
| <a name="input_contract_providers"></a> [contract\_providers](#input\_contract\_providers) | List of contract providers. | `list(string)` | `[]` | no |
| <a name="input_contract_imported_consumers"></a> [contract\_imported\_consumers](#input\_contract\_imported\_consumers) | List of imported contract consumers. | `list(string)` | `[]` | no |
Expand Down
4 changes: 2 additions & 2 deletions modules/terraform-aci-external-endpoint-group/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,10 @@ resource "aci_rest_managed" "l3extRsSubnetToProfile" {
}

resource "aci_rest_managed" "l3extRsSubnetToRtSumm" {
for_each = { for subnet in var.subnets : subnet.prefix => subnet if subnet.bgp_route_summarization || subnet.ospf_route_summarization }
for_each = { for subnet in var.subnets : subnet.prefix => subnet if subnet.bgp_route_summarization || subnet.ospf_route_summarization || subnet.eigrp_route_summarization }
dn = "${aci_rest_managed.l3extSubnet[each.value.prefix].dn}/rsSubnetToRtSumm"
class_name = "l3extRsSubnetToRtSumm"
content = {
tDn = each.value.bgp_route_summarization ? (each.value.bgp_route_summarization_policy != "" ? "uni/tn-${var.tenant}/bgprtsum-${each.value.bgp_route_summarization_policy}" : "uni/tn-common/bgprtsum-default") : (each.value.ospf_route_summarization ? "uni/tn-common/ospfrtsumm-default" : null)
tDn = each.value.bgp_route_summarization ? (each.value.bgp_route_summarization_policy != "" ? "uni/tn-${var.tenant}/bgprtsum-${each.value.bgp_route_summarization_policy}" : "uni/tn-common/bgprtsum-default") : (each.value.ospf_route_summarization ? "uni/tn-common/ospfrtsumm-default" : (each.value.eigrp_route_summarization ? "uni/tn-common/eigrprtsumm-eigrp_pol" : null))
}
}
3 changes: 2 additions & 1 deletion modules/terraform-aci-external-endpoint-group/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ variable "route_control_profiles" {
}

variable "subnets" {
description = "List of subnets. Default value `import_route_control`: false. Default value `export_route_control`: false. Default value `shared_route_control`: false. Default value `import_security`: true. Default value `shared_security`: false. Default value `aggregate_import_route_control`: false. Default value `aggregate_export_route_control`: false. Default value `aggregate_shared_route_control`: false. Default value `bgp_route_summarization`: false. Default value `ospf_route_summarization`: false."
description = "List of subnets. Default value `import_route_control`: false. Default value `export_route_control`: false. Default value `shared_route_control`: false. Default value `import_security`: true. Default value `shared_security`: false. Default value `aggregate_import_route_control`: false. Default value `aggregate_export_route_control`: false. Default value `aggregate_shared_route_control`: false. Default value `bgp_route_summarization`: false. Default value `ospf_route_summarization`: false. Default value `eigrp_route_summarization`: false."
type = list(object({
name = optional(string, "")
annotation = optional(string, null)
Expand All @@ -130,6 +130,7 @@ variable "subnets" {
bgp_route_summarization = optional(bool, false)
bgp_route_summarization_policy = optional(string, "")
ospf_route_summarization = optional(bool, false)
eigrp_route_summarization = optional(bool, false)
route_control_profiles = optional(list(object({
name = string
direction = optional(string, "import")
Expand Down
2 changes: 1 addition & 1 deletion modules/terraform-aci-netflow-vmm-exporter/main.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
resource "aci_rest_managed" "netflowVmmExporterPol" {
dn = "uni/infra/vmmexporterpol-${var.name}"
class_name = "netflowExporterPol"
class_name = "netflowVmmExporterPol"
content = {
name = var.name
descr = var.description
Expand Down
2 changes: 2 additions & 0 deletions modules/terraform-aci-route-control-route-map/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ module "aci_route_control_route_map" {
name = "ABC"
description = "My Description"
type = "combinable"
tenant = "TEN1"
contexts = [
{
Expand Down Expand Up @@ -52,6 +53,7 @@ module "aci_route_control_route_map" {
|------|-------------|------|---------|:--------:|
| <a name="input_tenant"></a> [tenant](#input\_tenant) | Tenant name. | `string` | n/a | yes |
| <a name="input_name"></a> [name](#input\_name) | Route Control Route Map name. | `string` | n/a | yes |
| <a name="input_type"></a> [type](#input\_type) | Route Control Route Map type. | `string` | `"combinable"` | no |
| <a name="input_description"></a> [description](#input\_description) | Route Control Route Map description. | `string` | `""` | no |
| <a name="input_contexts"></a> [contexts](#input\_contexts) | Route Control Route Map contexts. Allowed values `action`: `deny` or `permit`. Allowed values `order`: 0-9. | <pre>list(object({<br> name = string<br> description = optional(string, "")<br> action = optional(string, "permit")<br> order = optional(number, 0)<br> set_rule = optional(string, "")<br> match_rules = optional(list(string), [])<br> }))</pre> | `[]` | no |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ module "aci_route_control_route_map" {
name = "ABC"
description = "My Description"
type = "combinable"
tenant = "TEN1"
contexts = [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ module "aci_route_control_route_map" {

name = "ABC"
description = "My Description"
type = "combinable"
tenant = "TEN1"
contexts = [
{
Expand Down
2 changes: 1 addition & 1 deletion modules/terraform-aci-route-control-route-map/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ resource "aci_rest_managed" "rtctrlProfile" {
content = {
name = var.name
descr = var.description
type = "combinable"
type = var.type
}
}

Expand Down
10 changes: 10 additions & 0 deletions modules/terraform-aci-route-control-route-map/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@ variable "name" {
error_message = "Allowed characters: `a`-`z`, `A`-`Z`, `0`-`9`, `_`, `.`, `:`, `-`. Maximum characters: 64."
}
}
variable "type" {
description = "Route Control Route Map type."
type = string
default = "combinable"

validation {
condition = contains(["global", "combinable"], var.type)
error_message = "Valid values are `global` or `combinable`."
}
}

variable "description" {
description = "Route Control Route Map description."
Expand Down
8 changes: 0 additions & 8 deletions modules/terraform-aci-set-rule/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -206,14 +206,6 @@ variable "set_as_paths" {
]]))
error_message = "`order` minimum value: `0`. Maximum value: `31`."
}

validation {
condition = alltrue(flatten([
for c in var.set_as_paths : [
for a in c.asns : try(a.asn_number >= 0 && a.asn_number <= 65535, false)
]]))
error_message = "`asn` minimum value: `0`. Maximum value: `65535`."
}
}

variable "next_hop_propagation" {
Expand Down
2 changes: 1 addition & 1 deletion modules/terraform-aci-smart-licensing/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ variable "proxy_hostname_ip" {
default = ""

validation {
condition = var.proxy_hostname_ip == "" || can(regex("^[a-zA-Z0-9:\\[][a-zA-Z0-9.:-\\\\]]{0,254}$", var.proxy_hostname_ip))
condition = var.proxy_hostname_ip == "" || can(regex("^[a-zA-Z0-9:\\[][a-zA-Z0-9.:-\\]]{0,254}$", var.proxy_hostname_ip))
error_message = "Allowed characters: `a`-`z`, `A`-`Z`, `0`-`9`, `.`, `:`, `-`, `[`, `]`. Maximum characters: 254."
}
}
Expand Down

0 comments on commit 9123149

Please sign in to comment.