From 2fd5e1f092e4c3f5d406de7fdd9885eede11127a Mon Sep 17 00:00:00 2001 From: srushti-patl Date: Tue, 18 Jun 2024 09:32:12 -0700 Subject: [PATCH 1/2] feat: Integrating IBM provider with Fabric Example and Updating metal-nimf sanity suite --- .../terratests-metal-nimf-suite.yaml | 14 ++++++++ examples/metal-nimf-2-ibm2-connection/main.tf | 27 +++++++++++++++ .../metal-nimf-2-ibm2-connection/outputs.tf | 3 ++ .../terraform.tfvars.example | 6 ++++ .../metal-nimf-2-ibm2-connection/variables.tf | 33 +++++++++++++++++++ .../metal-nimf-2-ibm2-connection/versions.tf | 4 +++ examples/port-2-ibm2-connection/main.tf | 26 +++++++++++++++ examples/port-2-ibm2-connection/outputs.tf | 3 ++ .../terraform.tfvars.example | 6 ++++ examples/port-2-ibm2-connection/variables.tf | 33 +++++++++++++++++++ examples/port-2-ibm2-connection/versions.tf | 4 +++ 11 files changed, 159 insertions(+) diff --git a/.github/workflows/terratests-metal-nimf-suite.yaml b/.github/workflows/terratests-metal-nimf-suite.yaml index 66393a2d..753bdc7a 100644 --- a/.github/workflows/terratests-metal-nimf-suite.yaml +++ b/.github/workflows/terratests-metal-nimf-suite.yaml @@ -40,20 +40,34 @@ jobs: terraform_version: ${{ matrix.terraform }} terraform_wrapper: false + - name: Install jq + run: | + sudo apt-get install jq + - name: Set Connection Name variable run: echo "TF_VAR_connection_name=nimf_$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV - name: Setup Variables Files run: | + TIMESTAMP=$(date +"%m%d%M%S") + SUFFIX="_DIGP" echo $TEST_DATA_PROD_METAL_NIMF_2_AZURE_CONNECTION >> "./examples/metal-nimf-2-azure-connection/terraform.tfvars.json" + jq --arg timestamp "$TIMESTAMP" '.connection_name = ($timestamp + "_" + .connection_name)' ./examples/metal-nimf-2-azure-connection/terraform.tfvars.json > ./examples/metal-nimf-2-azure-connection/tmp.test.json && mv ./examples/metal-nimf-2-azure-connection/tmp.test.json ./examples/metal-nimf-2-azure-connection/terraform.tfvars.json echo $TEST_DATA_PROD_METAL_NIMF_2_AWS_CONNECTION >> "./examples/metal-nimf-2-aws-connection/terraform.tfvars.json" + jq --arg timestamp "$TIMESTAMP" '.connection_name = ($timestamp + "_" + .connection_name)' ./examples/metal-nimf-2-aws-connection/terraform.tfvars.json > ./examples/metal-nimf-2-aws-connection/tmp.test.json && mv ./examples/metal-nimf-2-aws-connection/tmp.test.json ./examples/metal-nimf-2-aws-connection/terraform.tfvars.json echo $TEST_DATA_PROD_METAL_NIMF_2_ORACLE_CONNECTION >> "./examples/metal-nimf-2-oracle-connection/terraform.tfvars.json" + jq --arg timestamp "$TIMESTAMP" '.connection_name = ($timestamp + "_" + .connection_name)' ./examples/metal-nimf-2-oracle-connection/terraform.tfvars.json > ./examples/metal-nimf-2-oracle-connection/tmp.test.json && mv ./examples/metal-nimf-2-oracle-connection/tmp.test.json ./examples/metal-nimf-2-oracle-connection/terraform.tfvars.json echo $TEST_DATA_PROD_CLOUD_ROUTER_2_METAL_NIMF_CONNECTION >> "./examples/cloud-router-2-metal-nimf-connection/terraform.tfvars.json" + jq --arg timestamp "$TIMESTAMP" '.connection_name = ($timestamp + "_" + .connection_name)' ./examples/cloud-router-2-metal-nimf-connection/terraform.tfvars.json > ./examples/cloud-router-2-metal-nimf-connection/tmp.test.json && mv ./examples/cloud-router-2-metal-nimf-connection/tmp.test.json ./examples/cloud-router-2-metal-nimf-connection/terraform.tfvars.json echo $TEST_DATA_PROD_METAL_NIMF_2_PORT_CONNECTION >> "./examples/metal-nimf-2-port-connection/terraform.tfvars.json" + jq --arg timestamp "$TIMESTAMP" '.connection_name = ($timestamp + "_" + .connection_name)' ./examples/metal-nimf-2-port-connection/terraform.tfvars.json > ./examples/metal-nimf-2-port-connection/tmp.test.json && mv ./examples/metal-nimf-2-port-connection/tmp.test.json ./examples/metal-nimf-2-port-connection/terraform.tfvars.json echo $TEST_DATA_PROD_METAL_NIMF_2_IBM2_CONNECTION >> "./examples/metal-nimf-2-ibm2-connection/terraform.tfvars.json" + jq --arg timestamp "$TIMESTAMP$SUFFIX" '.connection_name += "" + $timestamp' ./examples/metal-nimf-2-ibm2-connection/terraform.tfvars.json > ./examples/metal-nimf-2-ibm2-connection/tmp.test.json && mv ./examples/metal-nimf-2-ibm2-connection/tmp.test.json ./examples/metal-nimf-2-ibm2-connection/terraform.tfvars.json echo $TEST_DATA_PROD_METAL_NIMF_2_SERVICE_PROFILE_CONNECTION >> "./examples/metal-nimf-2-service-profile-connection/terraform.tfvars.json" + jq --arg timestamp "$TIMESTAMP" '.connection_name = ($timestamp + "_" + .connection_name)' ./examples/metal-nimf-2-service-profile-connection/terraform.tfvars.json > ./examples/metal-nimf-2-service-profile-connection/tmp.test.json && mv ./examples/metal-nimf-2-service-profile-connection/tmp.test.json ./examples/metal-nimf-2-service-profile-connection/terraform.tfvars.json echo $GOOGLE_SERVICE_KEYS >> "./examples/metal-nimf-2-google-connection/keys.json" echo $TEST_DATA_PROD_METAL_NIMF_2_GOOGLE_CONNECTION >> "./examples/metal-nimf-2-google-connection/terraform.tfvars.json" + jq --arg timestamp "$TIMESTAMP" '.connection_name = ($timestamp + "_" + .connection_name)' ./examples/metal-nimf-2-google-connection/terraform.tfvars.json > ./examples/metal-nimf-2-google-connection/tmp.test.json && mv ./examples/metal-nimf-2-google-connection/tmp.test.json ./examples/metal-nimf-2-google-connection/terraform.tfvars.json - name: Run Go Tests run: diff --git a/examples/metal-nimf-2-ibm2-connection/main.tf b/examples/metal-nimf-2-ibm2-connection/main.tf index fe55ba1a..d4a15a92 100644 --- a/examples/metal-nimf-2-ibm2-connection/main.tf +++ b/examples/metal-nimf-2-ibm2-connection/main.tf @@ -4,6 +4,12 @@ provider "equinix" { auth_token = var.metal_auth_token } +provider "ibm" { + ibmcloud_api_key = var.ibm_cloud_api_key + iaas_classic_username = var.ibm_classic_username + iaas_classic_api_key = var.ibm_classic_api_key +} + resource "equinix_metal_vlan" "vlan-server" { description = "${var.metal_connection_metro} VLAN Server 1 to Cloud" metro = var.metal_connection_metro @@ -44,3 +50,24 @@ module "metal_2_ibm2_connection" { zside_fabric_sp_name = var.zside_fabric_sp_name additional_info = var.additional_info } + +resource "time_sleep" "wait_dl_connection" { + create_duration = "1m" +} + +data "ibm_dl_gateway" "test_ibm_dl_gateway" { + name = var.connection_name + depends_on = [time_sleep.wait_dl_connection] +} + +data "ibm_resource_group" "rg" { + name = var.ibm_resource_group_name +} + +resource "ibm_dl_gateway_action" "test_dl_gateway_action" { + gateway = data.ibm_dl_gateway.test_ibm_dl_gateway.id + action = var.ibm_gateway_action + global = var.ibm_gateway_global + metered = var.ibm_gateway_metered + resource_group = data.ibm_resource_group.rg.id +} diff --git a/examples/metal-nimf-2-ibm2-connection/outputs.tf b/examples/metal-nimf-2-ibm2-connection/outputs.tf index 05e1ab7c..f0fc966e 100644 --- a/examples/metal-nimf-2-ibm2-connection/outputs.tf +++ b/examples/metal-nimf-2-ibm2-connection/outputs.tf @@ -7,3 +7,6 @@ output "metal_connection_id" { output "Metal_IBM2_Connection_Id" { value = module.metal_2_ibm2_connection.primary_connection_id } +output "IBM_Gateway_Action_Id" { + value = ibm_dl_gateway_action.test_dl_gateway_action.id +} diff --git a/examples/metal-nimf-2-ibm2-connection/terraform.tfvars.example b/examples/metal-nimf-2-ibm2-connection/terraform.tfvars.example index 21eeda51..f0bc4060 100644 --- a/examples/metal-nimf-2-ibm2-connection/terraform.tfvars.example +++ b/examples/metal-nimf-2-ibm2-connection/terraform.tfvars.example @@ -24,3 +24,9 @@ zside_location = "SV" zside_fabric_sp_name = "IBM Cloud Direct Link 2" zside_seller_region = "San Jose 2" additional_info = [ {"key" : "ASN", "value": 1234 }] + +ibm_cloud_api_key = " Date: Tue, 25 Jun 2024 09:35:43 -0700 Subject: [PATCH 2/2] fix:Upgrading Terraform Provider Version --- examples/metal-nimf-2-ibm2-connection/versions.tf | 2 +- examples/port-2-ibm2-connection/main.tf | 1 + examples/port-2-ibm2-connection/versions.tf | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/metal-nimf-2-ibm2-connection/versions.tf b/examples/metal-nimf-2-ibm2-connection/versions.tf index 16fd4459..73c4f152 100644 --- a/examples/metal-nimf-2-ibm2-connection/versions.tf +++ b/examples/metal-nimf-2-ibm2-connection/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { equinix = { source = "equinix/equinix" - version = ">= 1.34.0" + version = ">= 1.38.1" } ibm = { source = "IBM-Cloud/ibm" diff --git a/examples/port-2-ibm2-connection/main.tf b/examples/port-2-ibm2-connection/main.tf index b020402e..26396521 100644 --- a/examples/port-2-ibm2-connection/main.tf +++ b/examples/port-2-ibm2-connection/main.tf @@ -2,6 +2,7 @@ provider "equinix" { client_id = var.equinix_client_id client_secret = var.equinix_client_secret } + provider "ibm" { ibmcloud_api_key = var.ibm_cloud_api_key iaas_classic_username = var.ibm_classic_username diff --git a/examples/port-2-ibm2-connection/versions.tf b/examples/port-2-ibm2-connection/versions.tf index fc157396..73c4f152 100644 --- a/examples/port-2-ibm2-connection/versions.tf +++ b/examples/port-2-ibm2-connection/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { equinix = { source = "equinix/equinix" - version = ">= 1.20.0" + version = ">= 1.38.1" } ibm = { source = "IBM-Cloud/ibm"