Forum Discussion
Issues deploying Equinix Connections
I have managed to use several terraform modules without problem. I have used the palo alto cloudgenix vm modules, palo alto firewalls modules, device link modules, and fabric cloud router module. All work okay on the lastest version of equinix/equinix.
However as I dive into other connections I get a lot version issues. For example.
Leveraging the cloud-router-port connection.
https://registry.terraform.io/modules/equinix/fabric/equinix/latest/examples/cloud-router-2-port-connection
This would be used to connect the cloud router to the pa firewall mgmt interface. Documentation covers the following version.
required_providers {
equinix = {
source = "equinix/equinix"
version = ">= 2.9.0" } } }
But code doesnt work without this version
terraform {
required_providers {
equinix = {
source = "equinix/equinix"
version = "~> 1.26.0"
}
}
}
When using new versions error occurs.
Failure. Ive redone this several times in my code base.
ephemeral.aws_secretsmanager_secret_version.equinix_iac_credentials: Opening...
ephemeral.aws_secretsmanager_secret_version.equinix_iac_credentials: Opening complete after 0s
module.equinix_deployment.module.fw-mgmt-to-fcr-connection-ch-1a.equinix_fabric_connection.this: Creating...
╷
│ Error: 400 Bad Request Code: EQ-3142558, Message: Json syntax error, please check request body, Details: Unknown json property : aSide.accessPoint.router.package.code. Unexpected value ''
│
│ with module.equinix_deployment.module.fw-mgmt-to-fcr-connection-ch-1a.equinix_fabric_connection.this,
│ on ..\..\modules\cloud-router-2-port-connection\main.tf line 1, in resource "equinix_fabric_connection" "this":
│ 1: resource "equinix_fabric_connection" "this" {
I can get past this error and deploy the connection with an older version but then run into version issues when attempting to leverage the virtual-device-2-eia-connection
here the primary problem is that on older versions. there is no resource virtual-device-connection. only fabric-device-connection.
One thought is to completely separate the fabric cloud router to port module
Here is the original cloud router to port module
main.tf
resource "equinix_fabric_connection" "this" {
name = var.connection_name
type = var.connection_type
bandwidth = var.bandwidth
notifications {
type = var.notifications_type
emails = var.notifications_emails
}
a_side {
access_point {
type = "CLOUD_ROUTER"
router {
uuid = var.aside_fcr_uuid
}
}
}
z_side {
access_point {
type = var.zside_ap_type
virtual_device {
type = var.zside_vd_type
uuid = var.zside_vd_uuid
}
interface {
type = var.zside_interface_type
id = var.zside_interface_id
}
location {
metro_code = var.zside_location
}
}
}
order {
purchase_order_number = var.purchase_order_number
}
}
variables
variable "connection_name" {
type = string
description = "Name of the Fabric connection"
}
variable "connection_type" {
type = string
description = "Type of the Fabric connection (e.g., IP_VC)"
}
variable "bandwidth" {
type = number
description = "Connection bandwidth in Mbps"
}
variable "notifications_type" {
type = string
default = "ALL"
description = "Notification type"
}
variable "notifications_emails" {
type = list(string)
description = "Emails for notifications"
}
variable "purchase_order_number" {
type = string
default = ""
}
variable "aside_fcr_uuid" {
type = string
description = "UUID of the FCR device"
}
variable "zside_ap_type" {
type = string
default = "VD"
}
variable "zside_vd_type" {
type = string
default = "EDGE"
}
variable "zside_vd_uuid" {
type = string
}
variable "zside_interface_type" {
type = string
default = "NETWORK"
}
variable "zside_interface_id" {
type = number
}
variable "zside_location" {
type = string
}
versions.tf
terraform {
required_providers {
equinix = {
source = "equinix/equinix"
version = "~> 1.26.0"
}
}
}
module
module "fw-mgmt-to-fcr-connection-ch-1a" { #FCR Router to FW Management Interface Connection
source = "../../modules/cloud-router-2-port-connection"
connection_name = "fcr-2-fw-mgmt-ch"
connection_type = "IP_VC"
bandwidth = 50
notifications_type = "ALL"
notifications_emails = var.notifications
purchase_order_number = "mgmt-connection"
#aside Fabric Cloud Router
aside_fcr_uuid = module.fcr_ch.id
#zside Palo aAlto Firewall
zside_ap_type = "VD" #Virtual Device
zside_vd_type = "EDGE"
zside_vd_uuid = module.pa_vm_ch.id
zside_interface_type = "NETWORK"
zside_interface_id = 1 # Palo Alto Firewall Management Port
zside_location = "CH" #metro code
}
Hi mikecalabrese , patch fix has been released in https://github.com/equinix/terraform-provider-equinix/releases/tag/v3.7.0
You'll just need to avoid v3.6.0 version for cloud router connections.
Thank you so much for your patience!
5 Replies
- TimHogartyEquinix Employee
Hi mikecalabrese , patch fix has been released in https://github.com/equinix/terraform-provider-equinix/releases/tag/v3.7.0
You'll just need to avoid v3.6.0 version for cloud router connections.
Thank you so much for your patience!
- TimHogartyEquinix Employee
Hi mikecalabrese , my RCA was off. This was an upstream issue in our client interface generation. A previous version of Terraform (<=v03.5.0) will provide a temporary solution to unblock you until I can release the next version. Only v3.6.0 should continue to give you any issues.
Still working on releasing the bug fix. - TimHogartyEquinix Employee
Hi mikecalabrese , thanks for sharing the details around your challenge with the modules. I'm taking a look into this to see if I can recreate the issue. Once I've got a handle on this I'll reply with further guidance.
- mikecalabreseLevel 2
thanks Tim!
- TimHogartyEquinix Employee
Hi mikecalabrese , I've finished the RCA on this. There's improved input validation in the last global release of the API layer and the Terraform Provider needs a bug fix to account for it.
This will require a version update from the Terraform Provider once I have that fix completed. I'll reply here with the version as soon as it's ready.
Thank you for your patience while we get this resolved!
Related Content
- 2 years ago
- 4 years ago