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 , 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!
- 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.
Related Content
- 2 years ago
- 4 years ago
Recent Discussions
Featured Places
Discussions
Engage with industry experts, share insights, ask questions, and grow your network.Ideas
Share your ideas and help shape the future of Equinix!Groups
Ready to collaborate? Join a Group or upcoming beta program.What's New
Stay ahead with the latest from Equinix. Discover new product announcements, insightful tutorials, and practical use cases.Events
Your Guide to Upcoming Events - Online, Hybrid, and In-Person!