Code Monkey home page Code Monkey logo

terraform-equinix-fabric-connection-alibaba's Introduction

Equinix Fabric L2 Connection To Alibaba Express Connect Terraform module

Experimental terraform

terraform-equinix-fabric-connection-alibaba is a Terraform module that utilizes Terraform provider for Equinix and Terraform provider for Alibaba to set up an Equinix Fabric L2 connection to Alibaba Express Connect.

As part of Platform Equinix, your infrastructure can connect with other parties, such as public cloud providers, network service providers, or your own colocation cages in Equinix by defining an Equinix Fabric - software-defined interconnection.

This module creates the l2 connection in Equinix Fabric, approves the request in your account on the Alibaba platform, and optionally creates a Alibaba Express Connect private virtual interface (VIF) and a virtual private gateway (VGW). BGP in Equinix side can be optionally configured if Network Edge device is used.

     Origin                                              Destination
    (A-side)                                              (Z-side)

┌────────────────┐
│ Equinix Fabric │         Equinix Fabric          ┌────────────────────┐       ┌─────────────────────┐
│ Port / Network ├─────    l2 connection   ───────►│      Alibaba       │──────►│  VBR ─► BGP Group   │
│ Edge Device /  │      (50 Mbps - 10 Gbps)        │   Express Connect  │       │     ─► BGP Peer     │
│ Service Token  │                                 └────────────────────┘       │   (Alibaba Region)  │
└────────────────┘                                                              └─────────────────────┘
         │                                                                           │
         └ - - - - - - - - - - Network Edge Device - - - - - - - - - - - - - - - - - ┘
                                   BGP peering

Usage

This project is experimental and supported by the user community. Equinix does not provide support for this project.

Install Terraform using the official guides at https://learn.hashicorp.com/tutorials/terraform/install-cli.

This project may be forked, cloned, or downloaded and modified as needed as the base in your integrations and deployments.

This project may also be used as a Terraform module.

To use this module in a new project, create a file such as:

# main.tf
provider "equinix" {}

provider "alibaba" { region = "eu-central-1" }

data "alibaba_region" "this" {}

module "equinix-fabric-connection-alibaba" {
  source  = "equinix-labs/fabric-connection-alibaba/equinix"

  # required variables
  fabric_notification_users = ["[email protected]"]
  alicloud_account_id            = var.alibaba_account_id

  # optional variables
  fabric_destination_metro_code = "FR"
  network_edge_device_id        = "DeviceID"
}

Run terraform init -upgrade and terraform apply.

Variables

See https://registry.terraform.io/modules/equinix-labs/fabric-connection-alibaba/equinix/latest?tab=inputs for a description of all variables.

Outputs

See https://registry.terraform.io/modules/equinix-labs/fabric-connection-alibaba/equinix/latest?tab=outputs for a description of all outputs.

Resources

Name Type
random_string.this resource
equinix-fabric-connection module
equinix_network_bgp.this resource
alicloud_regions.this data source
alicloud_express_connect_virtual_border_routers.this data source
alicloud_vpc_bgp_group.this resource
alicloud_vpc_bgp_peer.this resource
external.os data source
null_resource.confirm_express_connect_virtual_border_router_creation resource

Examples

terraform-equinix-fabric-connection-alibaba's People

Contributors

codinja1188 avatar displague avatar ocobles avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

codinja1188

terraform-equinix-fabric-connection-alibaba's Issues

Invalid registry module source address

Hi Team,
Using the Alibaba module I'm getting the error listed below:

│ Error: Invalid registry module source address

│ Module "equinix-fabric-connection" (declared at .terraform\modules\equinix-fabric-connection-alibaba\main.tf line 11)
│ has invalid source address "github.com/equinix-labs/terraform-equinix-fabric-connection": source address must have
│ three more components after the hostname: the namespace, the name, and the target system.

│ Terraform assumed that you intended a module registry source address because you also set the argument "version",
│ which applies only to registry modules.
There is an issue related the PATH. Once updated to "equinix-labs/fabric-connection/equinix" it works fine and I was able to download the albaba plugins accordingly.

Missing resource block for alicloud_express_connect_virtual_border_routers

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request.
  • Please do not leave +1 or me too comments, they generate extra noise for issue followers and do not help prioritize the request.
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Terraform Version

$ terraform version
Terraform v1.2.9
on windows_amd64

  • provider registry.terraform.io/aliyun/alicloud v1.193.1
  • provider registry.terraform.io/equinix/equinix v1.11.1
  • provider registry.terraform.io/hashicorp/external v2.2.3
  • provider registry.terraform.io/hashicorp/null v3.2.1
  • provider registry.terraform.io/hashicorp/random v3.4.3
  • provider registry.terraform.io/hashicorp/vault v3.11.0

Affected Resource(s)

The module https://github.com/equinix-labs/terraform-equinix-fabric-connection-alibaba doesn't include the resource block to create new VBR in Alicloud.

https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/express_connect_virtual_border_router

*alicloud_express_connect_virtual_border_router

Terraform Configuration Files

Main.tf file is on the repo: https://github.com/equinix-labs/terraform-equinix-fabric-connection-alibaba/blob/main/main.tf

Debug Output

Output:


│ Error: Invalid index

│ on .terraform\modules\equinix-fabric-connection-alibaba\main.tf line 123, in locals:
│ 123: ][0]
│ ├────────────────
│ │ data.alicloud_express_connect_virtual_border_routers.this.routers is empty list of object
│ │ module.equinix-fabric-connection.primary_connection.zside_vlan_stag is 1002

│ The given key does not identify an element in this collection value: the collection has no elements.

Expected Behavior

Be able to create new VBR since this is a required element to establish a L2 alibaba connection with Equinix provider.

Actual Behavior

Not able to create new VBR, module only is configure to fetch an existing VBR.


│ Error: Invalid index

│ on .terraform\modules\equinix-fabric-connection-alibaba\main.tf line 123, in locals:
│ 123: ][0]
│ ├────────────────
│ │ data.alicloud_express_connect_virtual_border_routers.this.routers is empty list of object
│ │ module.equinix-fabric-connection.primary_connection.zside_vlan_stag is 1002

│ The given key does not identify an element in this collection value: the collection has no elements.

Steps to Reproduce

Add new resource block (https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/express_connect_virtual_border_router) the type:

  1. terraform apply

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.