Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add Terraform Provider Docs for Alibaba Integration #821

Merged
merged 6 commits into from
Nov 23, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions docs/resources/fabric_connection.md
Original file line number Diff line number Diff line change
Expand Up @@ -731,6 +731,89 @@ resource "equinix_fabric_connection" "fcr2metal" {
}
```

Port to Alibaba Connection EVPL_VC Connection:

```terraform
resource "equinix_fabric_connection" "port2alibaba" {
name = "ConnectionName"
type = "EVPL_VC"
notifications {
type = "ALL"
emails = ["[email protected]", "[email protected]"]
}
bandwidth = 50
redundancy { priority = "PRIMARY" }
order {
purchase_order_number = "1-323929"
}
a_side {
access_point {
type = "COLO"
port {
uuid = "<aside_port_uuid>"
}
link_protocol {
type = "DOT1Q"
vlan_tag = "2019"
}
}
}
z_side {
access_point {
type = "SP"
authentication_key = "<alibaba_account_id>"
seller_region = "us-west-1"
profile {
type = "L2_PROFILE"
uuid = "<service_profile_uuid>"
}
location {
metro_code = "SV"
}
}
}
}
```

### Step by Step Instructions for Fabric Port to Fabric Alibaba Profile Connection

#### 1. Create Connection from Equinix Terraform Provider

**Note:** The `connection_name` must follow either one of these patterns:

* A unique `connection_name` with atmost 24 characters
`connection_name = var.connection_name`
* A `connection_name` with atmost 12 characters combined with a random string of 12 characters:
`connection_name = "${var.connection_name}${random_string.random.result}"`
Use the `random_string` resource to perform this operation:
```hcl
resource "random_string" "random" {
length = 12
special = false
}
```
* A unique `connection_name` is generated by appending a 12-character random string to the variable name given by the user
* A Fabric Port to Alibaba Profile Connection is successfully created and displayed in the Fabric Portal
* An Express Connect Physical Connection resource is created and becomes visible in the Alibaba Portal

#### 2. Formulate main.tf and output.tf Files
* When you run the initial `terraform apply`, the resources and data sources (from the example) are in comments
* The comments can be removed after you accept the connection with the Alibaba portal

#### 3. Accept the Connection Request
* Manually accept the connection request in the Alibaba Portal for the created physical connection

#### 4. Create the Virtual Border Router (VBR) Resource
* Add resources and data sources to the connection example for creating the VBR resource
* Run `terraform init` to initialize and `terraform apply` to deploy the configuration
* The VBR resource is created successfully and linked to the physical connection

#### 5. Delete Resources
* Run `terraform destroy` to delete the Alibaba VBR
* Directly deleting the Equinix Fabric connection, will result in the following error: `ERR-UAA-003-00: Deletion for a provisioned connection needs to be initiated from Alibaba Portal`
* Go to the Alibaba Portal to manually **terminate** and then **delete** the physical connection
* This action will automatically delete the connection on the Equinix side, updating its status to Deprovisioned on both Equinix and Provider side

### Notes:

Port to IBM Connections could be modified from IBM Service Provider Side by using parameters passed to additional_info field:
Expand Down
39 changes: 39 additions & 0 deletions examples/resources/equinix_fabric_connection/port_to_alibaba.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
resource "equinix_fabric_connection" "port2alibaba" {
name = "ConnectionName"
type = "EVPL_VC"
notifications {
type = "ALL"
emails = ["[email protected]", "[email protected]"]
}
bandwidth = 50
redundancy { priority = "PRIMARY" }
order {
purchase_order_number = "1-323929"
}
a_side {
access_point {
type = "COLO"
port {
uuid = "<aside_port_uuid>"
}
link_protocol {
type = "DOT1Q"
vlan_tag = "2019"
}
}
}
z_side {
access_point {
type = "SP"
authentication_key = "<alibaba_account_id>"
seller_region = "us-west-1"
profile {
type = "L2_PROFILE"
uuid = "<service_profile_uuid>"
}
location {
metro_code = "SV"
}
}
}
}
thogarty marked this conversation as resolved.
Show resolved Hide resolved
43 changes: 43 additions & 0 deletions templates/resources/fabric_connection.md.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,49 @@ EVPLAN Port to Network Connection:

{{tffile "examples/resources/equinix_fabric_connection/fcr_to_metal.tf"}}

Port to Alibaba Connection EVPL_VC Connection:

{{tffile "examples/resources/equinix_fabric_connection/port_to_alibaba.tf"}}
thogarty marked this conversation as resolved.
Show resolved Hide resolved

### Step by Step Instructions for Fabric Port to Fabric Alibaba Profile Connection
thogarty marked this conversation as resolved.
Show resolved Hide resolved

#### 1. Create Connection from Equinix Terraform Provider

**Note:** The `connection_name` must follow either one of these patterns:

* A unique `connection_name` with atmost 24 characters
`connection_name = var.connection_name`
* A `connection_name` with atmost 12 characters combined with a random string of 12 characters:
`connection_name = "${var.connection_name}${random_string.random.result}"`
Use the `random_string` resource to perform this operation:
```hcl
resource "random_string" "random" {
length = 12
special = false
}
```
* A unique `connection_name` is generated by appending a 12-character random string to the variable name given by the user
* A Fabric Port to Alibaba Profile Connection is successfully created and displayed in the Fabric Portal
* An Express Connect Physical Connection resource is created and becomes visible in the Alibaba Portal

#### 2. Formulate main.tf and output.tf Files
thogarty marked this conversation as resolved.
Show resolved Hide resolved
* When you run the initial `terraform apply`, the resources and data sources (from the example) are in comments
* The comments can be removed after you accept the connection with the Alibaba portal

#### 3. Accept the Connection Request
* Manually accept the connection request in the Alibaba Portal for the created physical connection

#### 4. Create the Virtual Border Router (VBR) Resource
* Add resources and data sources to the connection example for creating the VBR resource
* Run `terraform init` to initialize and `terraform apply` to deploy the configuration
* The VBR resource is created successfully and linked to the physical connection

#### 5. Delete Resources
* Run `terraform destroy` to delete the Alibaba VBR
* Directly deleting the Equinix Fabric connection, will result in the following error: `ERR-UAA-003-00: Deletion for a provisioned connection needs to be initiated from Alibaba Portal`
* Go to the Alibaba Portal to manually **terminate** and then **delete** the physical connection
* This action will automatically delete the connection on the Equinix side, updating its status to Deprovisioned on both Equinix and Provider side

### Notes:

Port to IBM Connections could be modified from IBM Service Provider Side by using parameters passed to additional_info field:
Expand Down
Loading