diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh new file mode 100644 index 0000000..248eeb9 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts n:z:p: flag +do + case "${flag}" in + n) InstanceName=${OPTARG};; + z) Zone=${OPTARG};; + p) ProjectId=${OPTARG};; + esac +done + +# Connect +gcloud compute ssh $InstanceName \ + --zone=$Zone \ + --project=$ProjectId \ + --tunnel-through-iap \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/Makefile b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/Makefile new file mode 100644 index 0000000..fec4a4a --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/Makefile @@ -0,0 +1,45 @@ +SHELL := /bin/bash + +all: init apply ssh + +clean: state destroy + +version: + time terraform version + +init: + time terraform init + +validate: + time terraform validate + +update: + time terraform get -update + +plan: + time terraform plan + +apply: + time terraform apply -auto-approve + +destroy: + time terraform destroy -auto-approve + +output: + time terraform output + +ssh: + time terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshkey.pem + +state: + time terraform state list + +connect: connect-app + +connect-app: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -n $$(terraform output -json App | jq -r .name) -z $$(terraform output -json App | jq -r .zone) -p $$(terraform output -json App | jq -r .project) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -n $$(terraform output -json Agent1 | jq -r .name) -z $$(terraform output -json Agent1 | jq -r .zone) -p $$(terraform output -json Agent1 | jq -r .project) diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md index 68524d7..304bfde 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md @@ -7,7 +7,7 @@ This deployment creates a topology with three virtual private clouds, one having ``` terraform.required.auto.tfvars ``` -You **MUST** uncomment all lines in this file and replace values to match your particular environment. +You **MUST** uncomment all lines in this file and replace values to match your particular environment. Otherwise, Terraform will prompt the user to supply input arguents via cli. ## Optional Variables @@ -30,4 +30,4 @@ terraform validate terraform plan terraform state list terraform output -``` \ No newline at end of file +``` diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf index de6cdd0..a78d7d0 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf @@ -29,4 +29,4 @@ data "google_compute_machine_types" "App" { data "http" "ip" { url = "https://ifconfig.me/ip" -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf index e0bff58..5d5bf9e 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -11,7 +11,9 @@ locals { File3Content = tls_private_key.SshKey.public_key_openssh File3Name = "id_rsa.pub" Preamble = replace("${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}", "_", "-") + Private1VpcNetworkMtu = var.Private1VpcNetworkMtu Private1VpcNetworkPeerName = "${local.Preamble}-test1-vpc-peer" + Private2VpcNetworkMtu = var.Private2VpcNetworkMtu Private2VpcNetworkPeerName = "${local.Preamble}-test2-vpc-peer" PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges SshKeyAlgorithm = "RSA" @@ -20,4 +22,4 @@ locals { UserEmailTag = var.UserEmailTag == null ? "terraform@example.com" : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? lower(random_id.RandomId.id) : var.UserProjectTag -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf index 43e3d9e..672bdbd 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-google-module-bps-app.git?ref=11.20.3" + source = "git::https://github.com/Keysight/terraform-google-module-bps-app.git?ref=26.0.0" Eth0SubnetName = module.Vpc.PublicSubnet.name Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name MachineType = local.AppMachineType @@ -16,7 +16,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-google-module-bps-agent.git?ref=11.20.3" + source = "git::https://github.com/Keysight/terraform-google-module-bps-agent.git?ref=26.0.0" Eth0SubnetName = module.Vpc.PublicSubnet.name Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name Eth1SubnetName = module.Vpc.Private1Subnet.name @@ -39,4 +39,4 @@ module "Agent1" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf index 37d41b4..9a2d2f2 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf @@ -1,77 +1,88 @@ output "Agent1" { value = { - "architecture" : module.Agent1.Instance.architecture - "can_ip_forward" : module.Agent1.Instance.can_ip_forward - "cpu_platform" : module.Agent1.Instance.cpu_platform - "current_status" : module.Agent1.Instance.current_status - "image_name" : module.Agent1.Image.name - "image_project" : module.Agent1.Image.project - "instance_id" : module.Agent1.Instance.instance_id - "machine_description" : data.google_compute_machine_types.Agent.machine_types.0.description - "machine_guest_cpus" : data.google_compute_machine_types.Agent.machine_types.0.guest_cpus - "machine_is_shared_cpus" : data.google_compute_machine_types.Agent.machine_types.0.is_shared_cpus - "machine_memory_mb" : data.google_compute_machine_types.Agent.machine_types.0.memory_mb - "machine_type" : module.App.Instance.machine_type - "machine_type" : module.Agent1.Instance.machine_type - "name" : module.Agent1.Instance.name - "network_ip" : module.Agent1.Instance.network_ip - "project" : module.Agent1.Instance.project - "public_address" : module.Agent1.Eth0PublicIpAddress.address - "public_address_type" : module.Agent1.Eth0PublicIpAddress.address_type - "serial-port-enable" : module.Agent1.Instance.serial-port-enable - "zone" : module.Agent1.Instance.zone + architecture = module.Agent1.Instance.architecture + can_ip_forward = module.Agent1.Instance.can_ip_forward + cpu_platform = module.Agent1.Instance.cpu_platform + current_status = module.Agent1.Instance.current_status + eth0 = { + public_ip_address = { + address = module.Agent1.Eth0PublicIpAddress.address + address_type = module.Agent1.Eth0PublicIpAddress.address_type + } + } + image = { + name = module.Agent1.Image.name + project = module.Agent1.Image.project + } + instance_id = module.Agent1.Instance.instance_id + machine = { + description = data.google_compute_machine_types.Agent.machine_types.0.description + guest_cpus = data.google_compute_machine_types.Agent.machine_types.0.guest_cpus + is_shared_cpus = data.google_compute_machine_types.Agent.machine_types.0.is_shared_cpus + machine_type = module.Agent1.Instance.machine_type + memory_mb = data.google_compute_machine_types.Agent.machine_types.0.memory_mb + } + name = module.Agent1.Instance.name + network_ip = module.Agent1.Instance.network_ip + project = module.Agent1.Instance.project + serial-port-enable = module.Agent1.Instance.serial-port-enable + zone = module.Agent1.Instance.zone } } output "App" { value = { - "architecture" : module.App.Instance.architecture - "can_ip_forward" : module.App.Instance.can_ip_forward - "cpu_platform" : module.App.Instance.cpu_platform - "current_status" : module.App.Instance.current_status - "image_name" : module.App.Image.name - "image_project" : module.App.Image.project - "instance_id" : module.App.Instance.instance_id - "machine_description" : data.google_compute_machine_types.App.machine_types.0.description - "machine_guest_cpus" : data.google_compute_machine_types.App.machine_types.0.guest_cpus - "machine_is_shared_cpus" : data.google_compute_machine_types.App.machine_types.0.is_shared_cpus - "machine_memory_mb" : data.google_compute_machine_types.App.machine_types.0.memory_mb - "machine_type" : module.App.Instance.machine_type - "name" : module.App.Instance.name - "network_ip" : module.App.Instance.network_ip - "project" : module.App.Instance.project - "public_address" : module.App.Eth0PublicIpAddress.address - "public_address_type" : module.App.Eth0PublicIpAddress.address_type - "public_ip" : split("//", module.App.Eth0PublicIpAddress.address)[1] - "serial-port-enable" : module.App.Instance.serial-port-enable - "zone" : module.App.Instance.zone + architecture = module.App.Instance.architecture + can_ip_forward = module.App.Instance.can_ip_forward + cpu_platform = module.App.Instance.cpu_platform + current_status = module.App.Instance.current_status + image = { + name = module.App.Image.name + project = module.App.Image.project + } + instance_id = module.App.Instance.instance_id + machine = { + description = data.google_compute_machine_types.App.machine_types.0.description + guest_cpus = data.google_compute_machine_types.App.machine_types.0.guest_cpus + is_shared_cpus = data.google_compute_machine_types.App.machine_types.0.is_shared_cpus + memory_mb = data.google_compute_machine_types.App.machine_types.0.memory_mb + machine_type = module.App.Instance.machine_type + } + name = module.App.Instance.name + network_ip = module.App.Instance.network_ip + project = module.App.Instance.project + public_address = module.App.Eth0PublicIpAddress.address + public_address_type = module.App.Eth0PublicIpAddress.address_type + public_ip = split("//", module.App.Eth0PublicIpAddress.address)[1] + serial-port-enable = module.App.Instance.serial-port-enable + zone = module.App.Instance.zone } } output "Private1VpcNetwork" { value = { - "mtu" : module.Vpc.Private1VpcNetwork.mtu - "name" : module.Vpc.Private1VpcNetwork.name + mtu = module.Vpc.Private1VpcNetwork.mtu + name = module.Vpc.Private1VpcNetwork.name } } output "Private2VpcNetwork" { value = { - "mtu" : module.Vpc.Private2VpcNetwork.mtu - "name" : module.Vpc.Private2VpcNetwork.name + mtu = module.Vpc.Private2VpcNetwork.mtu + name = module.Vpc.Private2VpcNetwork.name } } output "PublicVpcNetwork" { value = { - "mtu" : module.Vpc.PublicVpcNetwork.mtu - "name" : module.Vpc.PublicVpcNetwork.name + mtu = module.Vpc.PublicVpcNetwork.mtu + name = module.Vpc.PublicVpcNetwork.name } } output "SshKey" { sensitive = true value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem + private_key_pem = tls_private_key.SshKey.private_key_pem } -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf index 7dff3e5..a9c19f9 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -24,6 +24,32 @@ AppMachineType must be one of the following types: } } +variable "Private1VpcNetworkMtu" { + default = 1460 + description = "Maxium Transmission Unit associated with the first private vpc network" + type = number + validation { + condition = contains([1460, 1500, 8896], var.Private1VpcNetworkMtu) + error_message = < .sshkey.pem + +state: + time terraform state list + +connect: connect-app + +connect-app: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -n $$(terraform output -json App | jq -r .name) -z $$(terraform output -json App | jq -r .zone) -p $$(terraform output -json App | jq -r .project) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -n $$(terraform output -json Agent1 | jq -r .name) -z $$(terraform output -json Agent1 | jq -r .zone) -p $$(terraform output -json Agent1 | jq -r .project) diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/README.md b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/README.md index ab91947..97859c0 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/README.md +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/README.md @@ -30,4 +30,4 @@ terraform validate terraform plan terraform state list terraform output -``` \ No newline at end of file +``` diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/data.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/data.tf index 6ada774..ff3047b 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/data.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/data.tf @@ -53,4 +53,4 @@ data "google_compute_network" "PublicVpcNetwork" { data "http" "ip" { url = "https://ifconfig.me/ip" -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/locals.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/locals.tf index 13b8e10..a0994a2 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/locals.tf @@ -24,4 +24,4 @@ locals { UserEmailTag = var.UserEmailTag == null ? "terraform@example.com" : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? lower(random_id.RandomId.id) : var.UserProjectTag -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/main.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/main.tf index 0f71cf0..eb1837c 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/main.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-google-module-bps-app.git?ref=11.20.4" + source = "git::https://github.com/Keysight/terraform-google-module-bps-app.git?ref=26.0.0" Eth0SubnetName = data.google_compute_subnetwork.PublicSubnet.name Eth0VpcNetworkName = data.google_compute_network.PublicVpcNetwork.name MachineType = local.AppMachineType @@ -12,7 +12,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-google-module-bps-agent.git?ref=11.20.4" + source = "git::https://github.com/Keysight/terraform-google-module-bps-agent.git?ref=26.0.0" Eth0SubnetName = data.google_compute_subnetwork.PublicSubnet.name Eth0VpcNetworkName = data.google_compute_network.PublicVpcNetwork.name Eth1SubnetName = data.google_compute_subnetwork.Private1Subnet.name @@ -31,4 +31,4 @@ module "Agent1" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/output.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/output.tf index d7b6d24..f236e74 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/output.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/output.tf @@ -1,73 +1,85 @@ output "Agent1" { value = { - "architecture" : module.Agent1.Instance.architecture - "can_ip_forward" : module.Agent1.Instance.can_ip_forward - "cpu_platform" : module.Agent1.Instance.cpu_platform - "current_status" : module.Agent1.Instance.current_status - "image_name" : module.Agent1.Image.name - "image_project" : module.Agent1.Image.project - "instance_id" : module.Agent1.Instance.instance_id - "machine_description" : data.google_compute_machine_types.Agent.machine_types.0.description - "machine_guest_cpus" : data.google_compute_machine_types.Agent.machine_types.0.guest_cpus - "machine_is_shared_cpus" : data.google_compute_machine_types.Agent.machine_types.0.is_shared_cpus - "machine_memory_mb" : data.google_compute_machine_types.Agent.machine_types.0.memory_mb - "machine_type" : module.Agent1.Instance.machine_type - "name" : module.Agent1.Instance.name - "network_ip" : module.Agent1.Instance.network_ip - "project" : module.Agent1.Instance.project - "public_address" : module.Agent1.Eth0PublicIpAddress.address - "public_address_type" : module.Agent1.Eth0PublicIpAddress.address_type - "serial-port-enable" : module.Agent1.Instance.serial-port-enable - "zone" : module.Agent1.Instance.zone + architecture = module.Agent1.Instance.architecture + can_ip_forward = module.Agent1.Instance.can_ip_forward + cpu_platform = module.Agent1.Instance.cpu_platform + current_status = module.Agent1.Instance.current_status + eth0 = { + public_ip_address = { + address = module.Agent1.Eth0PublicIpAddress.address + address_type = module.Agent1.Eth0PublicIpAddress.address_type + } + } + image = { + name = module.Agent1.Image.name + project = module.Agent1.Image.project + } + instance_id = module.Agent1.Instance.instance_id + machine = { + description = data.google_compute_machine_types.Agent.machine_types.0.description + guest_cpus = data.google_compute_machine_types.Agent.machine_types.0.guest_cpus + is_shared_cpus = data.google_compute_machine_types.Agent.machine_types.0.is_shared_cpus + machine_type = module.Agent1.Instance.machine_type + memory_mb = data.google_compute_machine_types.Agent.machine_types.0.memory_mb + } + name = module.Agent1.Instance.name + network_ip = module.Agent1.Instance.network_ip + project = module.Agent1.Instance.project + serial-port-enable = module.Agent1.Instance.serial-port-enable + zone = module.Agent1.Instance.zone } } output "App" { value = { - "architecture" : module.App.Instance.architecture - "can_ip_forward" : module.App.Instance.can_ip_forward - "cpu_platform" : module.App.Instance.cpu_platform - "current_status" : module.App.Instance.current_status - "image_name" : module.App.Image.name - "image_project" : module.App.Image.project - "instance_id" : module.App.Instance.instance_id - "machine_description" : data.google_compute_machine_types.App.machine_types.0.description - "machine_guest_cpus" : data.google_compute_machine_types.App.machine_types.0.guest_cpus - "machine_is_shared_cpus" : data.google_compute_machine_types.App.machine_types.0.is_shared_cpus - "machine_memory_mb" : data.google_compute_machine_types.App.machine_types.0.memory_mb - "machine_type" : module.App.Instance.machine_type - "name" : module.App.Instance.name - "network_ip" : module.App.Instance.network_ip - "project" : module.App.Instance.project - "public_address" : module.App.Eth0PublicIpAddress.address - "public_address_type" : module.App.Eth0PublicIpAddress.address_type - "public_ip" : split("//", module.App.Eth0PublicIpAddress.address)[1] - "serial-port-enable" : module.App.Instance.serial-port-enable - "zone" : module.App.Instance.zone + architecture = module.App.Instance.architecture + can_ip_forward = module.App.Instance.can_ip_forward + cpu_platform = module.App.Instance.cpu_platform + current_status = module.App.Instance.current_status + image = { + name = module.App.Image.name + project = module.App.Image.project + } + instance_id = module.App.Instance.instance_id + machine = { + description = data.google_compute_machine_types.App.machine_types.0.description + guest_cpus = data.google_compute_machine_types.App.machine_types.0.guest_cpus + is_shared_cpus = data.google_compute_machine_types.App.machine_types.0.is_shared_cpus + memory_mb = data.google_compute_machine_types.App.machine_types.0.memory_mb + machine_type = module.App.Instance.machine_type + } + name = module.App.Instance.name + network_ip = module.App.Instance.network_ip + project = module.App.Instance.project + public_address = module.App.Eth0PublicIpAddress.address + public_address_type = module.App.Eth0PublicIpAddress.address_type + public_ip = split("//", module.App.Eth0PublicIpAddress.address)[1] + serial-port-enable = module.App.Instance.serial-port-enable + zone = module.App.Instance.zone } } output "Private1VpcNetwork" { value = { - "name" : data.google_compute_network.Private1VpcNetwork.name + name = data.google_compute_network.Private1VpcNetwork.name } } output "Private2VpcNetwork" { value = { - "name" : data.google_compute_network.Private2VpcNetwork.name + name = data.google_compute_network.Private2VpcNetwork.name } } output "PublicVpcNetwork" { value = { - "name" : data.google_compute_network.PublicVpcNetwork.name + name = data.google_compute_network.PublicVpcNetwork.name } } output "SshKey" { sensitive = true value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem + private_key_pem = tls_private_key.SshKey.private_key_pem } -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/variables.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/variables.tf index f181641..803ba88 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/variables.tf @@ -101,4 +101,4 @@ variable "ZoneName" { default = "us-central1-a" description = "Deployment area within a region" type = string -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/versions.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/versions.tf index da7fd13..85ea245 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/versions.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-GCP-1-App-1-Virtual-Blade-Add-On/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 6.12.0" + version = ">= 7.18.0" } } -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh new file mode 100644 index 0000000..248eeb9 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts n:z:p: flag +do + case "${flag}" in + n) InstanceName=${OPTARG};; + z) Zone=${OPTARG};; + p) ProjectId=${OPTARG};; + esac +done + +# Connect +gcloud compute ssh $InstanceName \ + --zone=$Zone \ + --project=$ProjectId \ + --tunnel-through-iap \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/Makefile b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/Makefile new file mode 100644 index 0000000..ce2ee8b --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/Makefile @@ -0,0 +1,39 @@ +SHELL := /bin/bash + +all: init apply ssh + +clean: state destroy + +version: + time terraform version + +init: + time terraform init + +validate: + time terraform validate + +update: + time terraform get -update + +plan: + time terraform plan + +apply: + time terraform apply -auto-approve + +destroy: + time terraform destroy -auto-approve + +output: + time terraform output + +ssh: + time terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshkey.pem + +state: + time terraform state list + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -n $$(terraform output -json Agent1 | jq -r .name) -z $$(terraform output -json Agent1 | jq -r .zone) -p $$(terraform output -json Agent1 | jq -r .project) diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md index aa2d1b7..629ccb9 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md @@ -7,7 +7,7 @@ This deployment creates a topology with three virtual private clouds, one having ``` terraform.required.auto.tfvars ``` -You **MUST** uncomment all lines in this file and replace values to match your particular environment. +You **MUST** uncomment all lines in this file and replace values to match your particular environment. Otherwise, Terraform will prompt the user to supply input arguents via cli. ## Optional Variables @@ -30,4 +30,4 @@ terraform validate terraform plan terraform state list terraform output -``` \ No newline at end of file +``` diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf index beafde2..07a2a2e 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf @@ -24,4 +24,4 @@ data "google_compute_machine_types" "Agent" { data "http" "ip" { url = "https://ifconfig.me/ip" -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf index d7dffe0..0ef538f 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -10,7 +10,9 @@ locals { File3Content = tls_private_key.SshKey.public_key_openssh File3Name = "id_rsa.pub" Preamble = replace("${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}", "_", "-") + Private1VpcNetworkMtu = var.Private1VpcNetworkMtu Private1VpcNetworkPeerName = "${local.Preamble}-test1-vpc-peer" + Private2VpcNetworkMtu = var.Private2VpcNetworkMtu Private2VpcNetworkPeerName = "${local.Preamble}-test2-vpc-peer" PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges SshKeyAlgorithm = "RSA" @@ -19,4 +21,4 @@ locals { UserEmailTag = var.UserEmailTag == null ? "terraform@example.com" : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? lower(random_id.RandomId.id) : var.UserProjectTag -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf index 7d4d7d6..9d2ca3d 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-google-module-bps-agent.git?ref=11.20.3" + source = "git::https://github.com/Keysight/terraform-google-module-bps-agent.git?ref=26.0.0" Eth0SubnetName = module.Vpc.PublicSubnet.name Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name Eth1SubnetName = module.Vpc.Private1Subnet.name @@ -22,4 +22,4 @@ module "Agent1" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf index 905322d..b6aaa72 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf @@ -1,51 +1,59 @@ output "Agent1" { value = { - "architecture" : module.Agent1.Instance.architecture - "can_ip_forward" : module.Agent1.Instance.can_ip_forward - "cpu_platform" : module.Agent1.Instance.cpu_platform - "current_status" : module.Agent1.Instance.current_status - "image_name" : module.Agent1.Image.name - "image_project" : module.Agent1.Image.project - "instance_id" : module.Agent1.Instance.instance_id - "machine_description" : data.google_compute_machine_types.Agent.machine_types.0.description - "machine_guest_cpus" : data.google_compute_machine_types.Agent.machine_types.0.guest_cpus - "machine_is_shared_cpus" : data.google_compute_machine_types.Agent.machine_types.0.is_shared_cpus - "machine_memory_mb" : data.google_compute_machine_types.Agent.machine_types.0.memory_mb - "machine_type" : module.Agent1.Instance.machine_type - "name" : module.Agent1.Instance.name - "network_ip" : module.Agent1.Instance.network_ip - "project" : module.Agent1.Instance.project - "public_address" : module.Agent1.Eth0PublicIpAddress.address - "public_address_type" : module.Agent1.Eth0PublicIpAddress.address_type - "serial-port-enable" : module.Agent1.Instance.serial-port-enable - "zone" : module.Agent1.Instance.zone + architecture = module.Agent1.Instance.architecture + can_ip_forward = module.Agent1.Instance.can_ip_forward + cpu_platform = module.Agent1.Instance.cpu_platform + current_status = module.Agent1.Instance.current_status + eth0 = { + public_ip_address = { + address = module.Agent1.Eth0PublicIpAddress.address + address_type = module.Agent1.Eth0PublicIpAddress.address_type + } + } + image = { + name = module.Agent1.Image.name + project = module.Agent1.Image.project + } + instance_id = module.Agent1.Instance.instance_id + machine = { + description = data.google_compute_machine_types.Agent.machine_types.0.description + guest_cpus = data.google_compute_machine_types.Agent.machine_types.0.guest_cpus + is_shared_cpus = data.google_compute_machine_types.Agent.machine_types.0.is_shared_cpus + machine_type = module.Agent1.Instance.machine_type + memory_mb = data.google_compute_machine_types.Agent.machine_types.0.memory_mb + } + name = module.Agent1.Instance.name + network_ip = module.Agent1.Instance.network_ip + project = module.Agent1.Instance.project + serial-port-enable = module.Agent1.Instance.serial-port-enable + zone = module.Agent1.Instance.zone } } output "Private1VpcNetwork" { value = { - "mtu" : module.Vpc.Private1VpcNetwork.mtu - "name" : module.Vpc.Private1VpcNetwork.name + mtu = module.Vpc.Private1VpcNetwork.mtu + name = module.Vpc.Private1VpcNetwork.name } } output "Private2VpcNetwork" { value = { - "mtu" : module.Vpc.Private2VpcNetwork.mtu - "name" : module.Vpc.Private2VpcNetwork.name + mtu = module.Vpc.Private2VpcNetwork.mtu + name = module.Vpc.Private2VpcNetwork.name } } output "PublicVpcNetwork" { value = { - "mtu" : module.Vpc.PublicVpcNetwork.mtu - "name" : module.Vpc.PublicVpcNetwork.name + mtu = module.Vpc.PublicVpcNetwork.mtu + name = module.Vpc.PublicVpcNetwork.name } } output "SshKey" { sensitive = true value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem + private_key_pem = tls_private_key.SshKey.private_key_pem } -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf index c2f0463..cab3f6b 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -11,6 +11,32 @@ AgentMachineType must be one of the following types: } } +variable "Private1VpcNetworkMtu" { + default = 1460 + description = "Maxium Transmission Unit associated with the first private vpc network" + type = number + validation { + condition = contains([1460, 1500, 8896], var.Private1VpcNetworkMtu) + error_message = < .sshkey.pem + +state: + time terraform state list + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -n $$(terraform output -json Agent1 | jq -r .name) -z $$(terraform output -json Agent1 | jq -r .zone) -p $$(terraform output -json Agent1 | jq -r .project) diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/README.md b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/README.md index 49569b6..3499333 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/README.md +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/README.md @@ -30,4 +30,4 @@ terraform validate terraform plan terraform state list terraform output -``` \ No newline at end of file +``` diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/data.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/data.tf index 8aa1c8c..8776e87 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/data.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/data.tf @@ -48,4 +48,4 @@ data "google_compute_network" "PublicVpcNetwork" { data "http" "ip" { url = "https://ifconfig.me/ip" -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/locals.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/locals.tf index 301f2b0..fec2ba2 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/locals.tf @@ -23,4 +23,4 @@ locals { UserEmailTag = var.UserEmailTag == null ? "terraform@example.com" : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? lower(random_id.RandomId.id) : var.UserProjectTag -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/main.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/main.tf index 11c8860..ae2d05d 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/main.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-google-module-bps-agent.git?ref=11.20.4" + source = "git::https://github.com/Keysight/terraform-google-module-bps-agent.git?ref=26.0.0" Eth0SubnetName = data.google_compute_subnetwork.PublicSubnet.name Eth0VpcNetworkName = data.google_compute_network.PublicVpcNetwork.name Eth1SubnetName = data.google_compute_subnetwork.Private1Subnet.name @@ -18,4 +18,4 @@ module "Agent1" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/output.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/output.tf index 348c37a..dd224b8 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/output.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/output.tf @@ -1,48 +1,56 @@ output "Agent1" { value = { - "architecture" : module.Agent1.Instance.architecture - "can_ip_forward" : module.Agent1.Instance.can_ip_forward - "cpu_platform" : module.Agent1.Instance.cpu_platform - "current_status" : module.Agent1.Instance.current_status - "image_name" : module.Agent1.Image.name - "image_project" : module.Agent1.Image.project - "instance_id" : module.Agent1.Instance.instance_id - "machine_description" : data.google_compute_machine_types.Agent.machine_types.0.description - "machine_guest_cpus" : data.google_compute_machine_types.Agent.machine_types.0.guest_cpus - "machine_is_shared_cpus" : data.google_compute_machine_types.Agent.machine_types.0.is_shared_cpus - "machine_memory_mb" : data.google_compute_machine_types.Agent.machine_types.0.memory_mb - "machine_type" : module.Agent1.Instance.machine_type - "name" : module.Agent1.Instance.name - "network_ip" : module.Agent1.Instance.network_ip - "project" : module.Agent1.Instance.project - "public_address" : module.Agent1.Eth0PublicIpAddress.address - "public_address_type" : module.Agent1.Eth0PublicIpAddress.address_type - "serial-port-enable" : module.Agent1.Instance.serial-port-enable - "zone" : module.Agent1.Instance.zone + architecture = module.Agent1.Instance.architecture + can_ip_forward = module.Agent1.Instance.can_ip_forward + cpu_platform = module.Agent1.Instance.cpu_platform + current_status = module.Agent1.Instance.current_status + eth0 = { + public_ip_address = { + address = module.Agent1.Eth0PublicIpAddress.address + address_type = module.Agent1.Eth0PublicIpAddress.address_type + } + } + image = { + name = module.Agent1.Image.name + project = module.Agent1.Image.project + } + instance_id = module.Agent1.Instance.instance_id + machine = { + description = data.google_compute_machine_types.Agent.machine_types.0.description + guest_cpus = data.google_compute_machine_types.Agent.machine_types.0.guest_cpus + is_shared_cpus = data.google_compute_machine_types.Agent.machine_types.0.is_shared_cpus + machine_type = module.Agent1.Instance.machine_type + memory_mb = data.google_compute_machine_types.Agent.machine_types.0.memory_mb + } + name = module.Agent1.Instance.name + network_ip = module.Agent1.Instance.network_ip + project = module.Agent1.Instance.project + serial-port-enable = module.Agent1.Instance.serial-port-enable + zone = module.Agent1.Instance.zone } } output "Private1VpcNetwork" { value = { - "name" : data.google_compute_network.Private1VpcNetwork.name + name = data.google_compute_network.Private1VpcNetwork.name } } output "Private2VpcNetwork" { value = { - "name" : data.google_compute_network.Private2VpcNetwork.name + name = data.google_compute_network.Private2VpcNetwork.name } } output "PublicVpcNetwork" { value = { - "name" : data.google_compute_network.PublicVpcNetwork.name + name = data.google_compute_network.PublicVpcNetwork.name } } output "SshKey" { sensitive = true value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem + private_key_pem = tls_private_key.SshKey.private_key_pem } -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/variables.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/variables.tf index da85a87..aba34c4 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/variables.tf @@ -88,4 +88,4 @@ variable "ZoneName" { default = "us-central1-a" description = "Deployment area within a region" type = string -} \ No newline at end of file +} diff --git a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/versions.tf b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/versions.tf index da7fd13..85ea245 100644 --- a/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/versions.tf +++ b/google-cloud-platform/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-GCP-1-Virtual-Blade-Add-On/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 6.12.0" + version = ">= 7.18.0" } } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/Makefile b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 0000000..d57afd1 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,35 @@ +SHELL := /bin/bash + +all: init apply ssh + +clean: state destroy + +version: + time terraform version + +init: + time terraform init + +validate: + time terraform validate + +update: + time terraform get -update + +plan: + time terraform plan + +apply: + time terraform apply -auto-approve + +destroy: + time terraform destroy -auto-approve + +output: + time terraform output + +ssh: + time terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshkey.pem + +state: + time terraform state list diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/cloud-init.yml b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/cloud-init.yml index 98cd522..ebcba1d 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/cloud-init.yml +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/cloud-init.yml @@ -21,5 +21,21 @@ write_files: runcmd: - chmod 755 /home/${UserName}/.ssh - chown ${UserName}:${UserName} /home/${UserName}/.ssh + - | + # Redirect all output (stdout + stderr) to custom log file + exec > >(tee -a /var/log/terraform-cloud-init-output.log) 2>&1 + set -e + echo "=== Starting Mellanox NIC check ===" + if ! lspci | grep -qi mellanox; then + echo "ERROR: Mellanox NIC not detected. Accelerated Networking may not be active." + exit 1 + fi + if ! lsmod | grep -q mlx; then + echo "ERROR: Mellanox driver not loaded (mlx4/mlx5 missing)." + exit 1 + fi + echo "SUCCESS: Mellanox NIC detected and driver loaded." + ethtool -i eth0 + echo "=== NIC check completed successfully ===" output: - all: "| tee -a /var/log/terraform-cloud-init-output.log" \ No newline at end of file + all: "| tee -a /var/log/terraform-cloud-init-output.log" diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf index 89987f1..6683458 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-bps-app.git?ref=11.20.0" + source = "git::https://github.com/Keysight/terraform-azurerm-module-bps-app.git?ref=26.0.0" Eth0SubnetId = module.Vnet.PublicSubnet.id ResourceGroupLocation = azurerm_resource_group.ResourceGroup.location ResourceGroupName = azurerm_resource_group.ResourceGroup.name @@ -17,7 +17,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-bps-agent.git?ref=11.20.1" + source = "git::https://github.com/Keysight/terraform-azurerm-module-bps-agent.git?ref=26.0.0" Eth0SubnetId = module.Vnet.PublicSubnet.id Eth1SubnetId = module.Vnet.PrivateSubnet.id Eth2IpAddresses = local.Agent1Eth2IpAddresses @@ -44,4 +44,4 @@ resource "azurerm_resource_group" "ResourceGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf index 4779c7c..d48ad39 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -1,14 +1,22 @@ -output "Agent1Eth0PublicIpAddress" { +output "Agent1" { value = { + "admin_username" : module.Agent1.Instance.admin_username "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "name" : module.Agent1.Instance.name + "private_ip_address" : module.Agent1.Instance.private_ip_address + "public_ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "size" : module.Agent1.Instance.size } } -output "AppEth0PublicIpAddress" { +output "App" { value = { + "admin_username" : module.App.Instance.admin_username "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.Eth0PublicIpAddress.ip_address + "name" : module.App.Instance.name + "private_ip_address" : module.App.Instance.private_ip_address + "public_ip_address" : module.App.Eth0PublicIpAddress.ip_address + "size" : module.App.Instance.size } } @@ -40,4 +48,4 @@ output "Subscriptions" { "available.display_name" : data.azurerm_subscriptions.available.subscriptions[*].display_name "available.subscription_id" : data.azurerm_subscriptions.available.subscriptions[*].subscription_id } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf index 6be816c..bda4310 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -3,11 +3,10 @@ variable "AgentVmSize" { description = "Category, series and instance specifications associated with the Agent VM" type = string validation { - condition = contains([ "Standard_E8_v5", "Standard_E16_v5" - ], var.AgentVmSize) + condition = contains([ "Standard_E8_v5", "Standard_E16_v5" ], var.AgentVmSize) error_message = < .sshkey.pem + +state: + time terraform state list diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/cloud-init.yml b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/cloud-init.yml index 98cd522..ebcba1d 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/cloud-init.yml +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/cloud-init.yml @@ -21,5 +21,21 @@ write_files: runcmd: - chmod 755 /home/${UserName}/.ssh - chown ${UserName}:${UserName} /home/${UserName}/.ssh + - | + # Redirect all output (stdout + stderr) to custom log file + exec > >(tee -a /var/log/terraform-cloud-init-output.log) 2>&1 + set -e + echo "=== Starting Mellanox NIC check ===" + if ! lspci | grep -qi mellanox; then + echo "ERROR: Mellanox NIC not detected. Accelerated Networking may not be active." + exit 1 + fi + if ! lsmod | grep -q mlx; then + echo "ERROR: Mellanox driver not loaded (mlx4/mlx5 missing)." + exit 1 + fi + echo "SUCCESS: Mellanox NIC detected and driver loaded." + ethtool -i eth0 + echo "=== NIC check completed successfully ===" output: - all: "| tee -a /var/log/terraform-cloud-init-output.log" \ No newline at end of file + all: "| tee -a /var/log/terraform-cloud-init-output.log" diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf index 99fdcbe..314df62 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-bps-app.git?ref=11.20.0" + source = "git::https://github.com/Keysight/terraform-azurerm-module-bps-app.git?ref=26.0.0" Eth0SubnetId = module.Vnet.PublicSubnet.id ResourceGroupLocation = azurerm_resource_group.ResourceGroup.location ResourceGroupName = azurerm_resource_group.ResourceGroup.name @@ -17,7 +17,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-bps-agent.git?ref=11.20.1" + source = "git::https://github.com/Keysight/terraform-azurerm-module-bps-agent.git?ref=26.0.0" Eth0SubnetId = module.Vnet.PublicSubnet.id Eth1SubnetId = module.Vnet.Private1Subnet.id Eth2SubnetId = module.Vnet.Private2Subnet.id @@ -43,4 +43,4 @@ resource "azurerm_resource_group" "ResourceGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf index 4779c7c..d48ad39 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf @@ -1,14 +1,22 @@ -output "Agent1Eth0PublicIpAddress" { +output "Agent1" { value = { + "admin_username" : module.Agent1.Instance.admin_username "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "name" : module.Agent1.Instance.name + "private_ip_address" : module.Agent1.Instance.private_ip_address + "public_ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "size" : module.Agent1.Instance.size } } -output "AppEth0PublicIpAddress" { +output "App" { value = { + "admin_username" : module.App.Instance.admin_username "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.Eth0PublicIpAddress.ip_address + "name" : module.App.Instance.name + "private_ip_address" : module.App.Instance.private_ip_address + "public_ip_address" : module.App.Eth0PublicIpAddress.ip_address + "size" : module.App.Instance.size } } @@ -40,4 +48,4 @@ output "Subscriptions" { "available.display_name" : data.azurerm_subscriptions.available.subscriptions[*].display_name "available.subscription_id" : data.azurerm_subscriptions.available.subscriptions[*].subscription_id } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf index a7541cc..bda4310 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -58,4 +58,4 @@ variable "UserProjectTag" { default = null description = "Project tag of user creating the deployment" type = string -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf index 8a59e1f..6a87793 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { azurerm = { source = "hashicorp/azurerm" - version = ">= 3.91.0" + version = ">= 4.10.0" } } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf index 311ced7..58d257f 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf @@ -1,5 +1,5 @@ module "Vnet" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-1-vnet-1-public-subnet-2-private-subnets.git?ref=11.20.0" + source = "git::https://github.com/Keysight/terraform-azurerm-module-1-vnet-1-public-subnet-2-private-subnets.git?ref=26.0.0" PublicSecurityRuleSourceIpPrefixes = local.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = azurerm_resource_group.ResourceGroup.location ResourceGroupName = azurerm_resource_group.ResourceGroup.name @@ -7,4 +7,4 @@ module "Vnet" { UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/Makefile b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/Makefile new file mode 100644 index 0000000..d57afd1 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/Makefile @@ -0,0 +1,35 @@ +SHELL := /bin/bash + +all: init apply ssh + +clean: state destroy + +version: + time terraform version + +init: + time terraform init + +validate: + time terraform validate + +update: + time terraform get -update + +plan: + time terraform plan + +apply: + time terraform apply -auto-approve + +destroy: + time terraform destroy -auto-approve + +output: + time terraform output + +ssh: + time terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshkey.pem + +state: + time terraform state list diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/README.md b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/README.md index 39120ec..572a733 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/README.md +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/README.md @@ -31,4 +31,4 @@ terraform plan terraform state list terraform output terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > SshKey.pem -``` \ No newline at end of file +``` diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/cloud-init.yml b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/cloud-init.yml index 98cd522..ebcba1d 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/cloud-init.yml +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/cloud-init.yml @@ -21,5 +21,21 @@ write_files: runcmd: - chmod 755 /home/${UserName}/.ssh - chown ${UserName}:${UserName} /home/${UserName}/.ssh + - | + # Redirect all output (stdout + stderr) to custom log file + exec > >(tee -a /var/log/terraform-cloud-init-output.log) 2>&1 + set -e + echo "=== Starting Mellanox NIC check ===" + if ! lspci | grep -qi mellanox; then + echo "ERROR: Mellanox NIC not detected. Accelerated Networking may not be active." + exit 1 + fi + if ! lsmod | grep -q mlx; then + echo "ERROR: Mellanox driver not loaded (mlx4/mlx5 missing)." + exit 1 + fi + echo "SUCCESS: Mellanox NIC detected and driver loaded." + ethtool -i eth0 + echo "=== NIC check completed successfully ===" output: - all: "| tee -a /var/log/terraform-cloud-init-output.log" \ No newline at end of file + all: "| tee -a /var/log/terraform-cloud-init-output.log" diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/main.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/main.tf index e1a941a..1f5c2db 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/main.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-bps-app.git?ref=11.20.0" + source = "git::https://github.com/Keysight/terraform-azurerm-module-bps-app.git?ref=26.0.0" Eth0SubnetId = data.azurerm_subnet.PublicSubnet.id ResourceGroupLocation = data.azurerm_resource_group.ResourceGroup.location ResourceGroupName = data.azurerm_resource_group.ResourceGroup.name @@ -16,7 +16,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-bps-agent.git?ref=11.20.1" + source = "git::https://github.com/Keysight/terraform-azurerm-module-bps-agent.git?ref=26.0.0" Eth0SubnetId = data.azurerm_subnet.PublicSubnet.id Eth1SubnetId = data.azurerm_subnet.Private1Subnet.id Eth2SubnetId = data.azurerm_subnet.Private2Subnet.id @@ -36,4 +36,4 @@ module "Agent1" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/output.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/output.tf index 3b6d956..1bad3d3 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/output.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/output.tf @@ -1,14 +1,22 @@ -output "Agent1Eth0PublicIpAddress" { +output "Agent1" { value = { + "admin_username" : module.Agent1.Instance.admin_username "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "name" : module.Agent1.Instance.name + "private_ip_address" : module.Agent1.Instance.private_ip_address + "public_ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "size" : module.Agent1.Instance.size } } -output "AppEth0PublicIpAddress" { +output "App" { value = { + "admin_username" : module.App.Instance.admin_username "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.Eth0PublicIpAddress.ip_address + "name" : module.App.Instance.name + "private_ip_address" : module.App.Instance.private_ip_address + "public_ip_address" : module.App.Eth0PublicIpAddress.ip_address + "size" : module.App.Instance.size } } @@ -40,4 +48,4 @@ output "Subscriptions" { "available.display_name" : data.azurerm_subscriptions.available.subscriptions[*].display_name "available.subscription_id" : data.azurerm_subscriptions.available.subscriptions[*].subscription_id } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/versions.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/versions.tf index 8a59e1f..6a87793 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/versions.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-FullDeployment/BPS-on-Azure-1-App-1-Virtual-Blade-Add-On/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { azurerm = { source = "hashicorp/azurerm" - version = ">= 3.91.0" + version = ">= 4.10.0" } } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/Makefile b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 0000000..d57afd1 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,35 @@ +SHELL := /bin/bash + +all: init apply ssh + +clean: state destroy + +version: + time terraform version + +init: + time terraform init + +validate: + time terraform validate + +update: + time terraform get -update + +plan: + time terraform plan + +apply: + time terraform apply -auto-approve + +destroy: + time terraform destroy -auto-approve + +output: + time terraform output + +ssh: + time terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshkey.pem + +state: + time terraform state list diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/cloud-init.yml b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/cloud-init.yml index 98cd522..ebcba1d 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/cloud-init.yml +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/cloud-init.yml @@ -21,5 +21,21 @@ write_files: runcmd: - chmod 755 /home/${UserName}/.ssh - chown ${UserName}:${UserName} /home/${UserName}/.ssh + - | + # Redirect all output (stdout + stderr) to custom log file + exec > >(tee -a /var/log/terraform-cloud-init-output.log) 2>&1 + set -e + echo "=== Starting Mellanox NIC check ===" + if ! lspci | grep -qi mellanox; then + echo "ERROR: Mellanox NIC not detected. Accelerated Networking may not be active." + exit 1 + fi + if ! lsmod | grep -q mlx; then + echo "ERROR: Mellanox driver not loaded (mlx4/mlx5 missing)." + exit 1 + fi + echo "SUCCESS: Mellanox NIC detected and driver loaded." + ethtool -i eth0 + echo "=== NIC check completed successfully ===" output: - all: "| tee -a /var/log/terraform-cloud-init-output.log" \ No newline at end of file + all: "| tee -a /var/log/terraform-cloud-init-output.log" diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf index e1a6472..2bbca59 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-bps-agent.git?ref=11.20.1" + source = "git::https://github.com/Keysight/terraform-azurerm-module-bps-agent.git?ref=26.0.0" Eth0SubnetId = module.Vnet.PublicSubnet.id Eth1SubnetId = module.Vnet.PrivateSubnet.id Eth2IpAddresses = local.Agent1Eth2IpAddresses @@ -26,4 +26,4 @@ resource "azurerm_resource_group" "ResourceGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf index e465fb4..2b5fb3f 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -1,7 +1,11 @@ -output "Agent1Eth0PublicIpAddress" { +output "Agent1" { value = { + "admin_username" : module.Agent1.Instance.admin_username "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "name" : module.Agent1.Instance.name + "private_ip_address" : module.Agent1.Instance.private_ip_address + "public_ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "size" : module.Agent1.Instance.size } } @@ -33,4 +37,4 @@ output "Subscriptions" { "available.display_name" : data.azurerm_subscriptions.available.subscriptions[*].display_name "available.subscription_id" : data.azurerm_subscriptions.available.subscriptions[*].subscription_id } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf index f83351b..5b14e28 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -6,7 +6,7 @@ variable "AgentVmSize" { condition = contains([ "Standard_E8_v5", "Standard_E16_v5" ], var.AgentVmSize) error_message = < .sshkey.pem + +state: + time terraform state list diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/cloud-init.yml b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/cloud-init.yml index 98cd522..ebcba1d 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/cloud-init.yml +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/cloud-init.yml @@ -21,5 +21,21 @@ write_files: runcmd: - chmod 755 /home/${UserName}/.ssh - chown ${UserName}:${UserName} /home/${UserName}/.ssh + - | + # Redirect all output (stdout + stderr) to custom log file + exec > >(tee -a /var/log/terraform-cloud-init-output.log) 2>&1 + set -e + echo "=== Starting Mellanox NIC check ===" + if ! lspci | grep -qi mellanox; then + echo "ERROR: Mellanox NIC not detected. Accelerated Networking may not be active." + exit 1 + fi + if ! lsmod | grep -q mlx; then + echo "ERROR: Mellanox driver not loaded (mlx4/mlx5 missing)." + exit 1 + fi + echo "SUCCESS: Mellanox NIC detected and driver loaded." + ethtool -i eth0 + echo "=== NIC check completed successfully ===" output: - all: "| tee -a /var/log/terraform-cloud-init-output.log" \ No newline at end of file + all: "| tee -a /var/log/terraform-cloud-init-output.log" diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf index 4326f30..88e4803 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-bps-agent.git?ref=11.20.1" + source = "git::https://github.com/Keysight/terraform-azurerm-module-bps-agent.git?ref=26.0.0" Eth0SubnetId = module.Vnet.PublicSubnet.id Eth1SubnetId = module.Vnet.Private1Subnet.id Eth2SubnetId = module.Vnet.Private2Subnet.id @@ -25,4 +25,4 @@ resource "azurerm_resource_group" "ResourceGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf index e465fb4..2b5fb3f 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf @@ -1,7 +1,11 @@ -output "Agent1Eth0PublicIpAddress" { +output "Agent1" { value = { + "admin_username" : module.Agent1.Instance.admin_username "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "name" : module.Agent1.Instance.name + "private_ip_address" : module.Agent1.Instance.private_ip_address + "public_ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "size" : module.Agent1.Instance.size } } @@ -33,4 +37,4 @@ output "Subscriptions" { "available.display_name" : data.azurerm_subscriptions.available.subscriptions[*].display_name "available.subscription_id" : data.azurerm_subscriptions.available.subscriptions[*].subscription_id } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf index dbf9eb8..5b14e28 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -45,4 +45,4 @@ variable "UserProjectTag" { default = null description = "Project tag of user creating the deployment" type = string -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf index 8a59e1f..6a87793 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { azurerm = { source = "hashicorp/azurerm" - version = ">= 3.91.0" + version = ">= 4.10.0" } } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf index 311ced7..58d257f 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf @@ -1,5 +1,5 @@ module "Vnet" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-1-vnet-1-public-subnet-2-private-subnets.git?ref=11.20.0" + source = "git::https://github.com/Keysight/terraform-azurerm-module-1-vnet-1-public-subnet-2-private-subnets.git?ref=26.0.0" PublicSecurityRuleSourceIpPrefixes = local.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = azurerm_resource_group.ResourceGroup.location ResourceGroupName = azurerm_resource_group.ResourceGroup.name @@ -7,4 +7,4 @@ module "Vnet" { UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/Makefile b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/Makefile new file mode 100644 index 0000000..d57afd1 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/Makefile @@ -0,0 +1,35 @@ +SHELL := /bin/bash + +all: init apply ssh + +clean: state destroy + +version: + time terraform version + +init: + time terraform init + +validate: + time terraform validate + +update: + time terraform get -update + +plan: + time terraform plan + +apply: + time terraform apply -auto-approve + +destroy: + time terraform destroy -auto-approve + +output: + time terraform output + +ssh: + time terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshkey.pem + +state: + time terraform state list diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/README.md b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/README.md index ba88982..a9312e0 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/README.md +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/README.md @@ -1,4 +1,4 @@ -# BPS-on-Azure-1-Agent-Add-On +# BPS-on-Azure-1-Virtual-Blade-Add-On ## Description This deployment creates resources that will be attached to an existing network topology. @@ -31,4 +31,4 @@ terraform plan terraform state list terraform output terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > SshKey.pem -``` \ No newline at end of file +``` diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/cloud-init.yml b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/cloud-init.yml index 98cd522..ebcba1d 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/cloud-init.yml +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/cloud-init.yml @@ -21,5 +21,21 @@ write_files: runcmd: - chmod 755 /home/${UserName}/.ssh - chown ${UserName}:${UserName} /home/${UserName}/.ssh + - | + # Redirect all output (stdout + stderr) to custom log file + exec > >(tee -a /var/log/terraform-cloud-init-output.log) 2>&1 + set -e + echo "=== Starting Mellanox NIC check ===" + if ! lspci | grep -qi mellanox; then + echo "ERROR: Mellanox NIC not detected. Accelerated Networking may not be active." + exit 1 + fi + if ! lsmod | grep -q mlx; then + echo "ERROR: Mellanox driver not loaded (mlx4/mlx5 missing)." + exit 1 + fi + echo "SUCCESS: Mellanox NIC detected and driver loaded." + ethtool -i eth0 + echo "=== NIC check completed successfully ===" output: - all: "| tee -a /var/log/terraform-cloud-init-output.log" \ No newline at end of file + all: "| tee -a /var/log/terraform-cloud-init-output.log" diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/main.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/main.tf index 8d25fb5..f2260dd 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/main.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-azurerm-module-bps-agent.git?ref=11.20.1" + source = "git::https://github.com/Keysight/terraform-azurerm-module-bps-agent.git?ref=26.0.0" Eth0SubnetId = data.azurerm_subnet.PublicSubnet.id Eth1SubnetId = data.azurerm_subnet.Private1Subnet.id Eth2SubnetId = data.azurerm_subnet.Private2Subnet.id @@ -19,4 +19,4 @@ module "Agent1" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/output.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/output.tf index 3b77de8..27be86b 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/output.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/output.tf @@ -1,7 +1,11 @@ -output "Agent1Eth0PublicIpAddress" { +output "Agent1" { value = { + "admin_username" : module.Agent1.Instance.admin_username "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "name" : module.Agent1.Instance.name + "private_ip_address" : module.Agent1.Instance.private_ip_address + "public_ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address + "size" : module.Agent1.Instance.size } } @@ -33,4 +37,4 @@ output "Subscriptions" { "available.display_name" : data.azurerm_subscriptions.available.subscriptions[*].display_name "available.subscription_id" : data.azurerm_subscriptions.available.subscriptions[*].subscription_id } -} \ No newline at end of file +} diff --git a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/versions.tf b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/versions.tf index 8a59e1f..6a87793 100644 --- a/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/versions.tf +++ b/microsoft-azure/Deployment/Terraform/BPS-VE-VirtualBladeOnly/BPS-on-Azure-1-Virtual-Blade-Add-On/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { azurerm = { source = "hashicorp/azurerm" - version = ">= 3.91.0" + version = ">= 4.10.0" } } -} \ No newline at end of file +}