diff --git a/.gitignore b/.gitignore index 38a45c2f..fdefec7f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ *.tfstate* *.lock.hcl terraform.auto.tfvars -.sshkey.pem -Makefile \ No newline at end of file +backend.tf +.sshkey.pem \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..390662d3 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,56 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply ssh output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 91% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index 01e3010a..e77814c2 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. @@ -26,4 +26,4 @@ terraform validate terraform plan terraform state list terraform output -``` \ No newline at end of file +``` diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..d2f0f10a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,19 @@ +data "aws_caller_identity" "current" {} + +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + +data "aws_region" "current" {} + +data "aws_availability_zones" "available" { + state = "available" +} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 96% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index dd23eaf7..6ff41c7b 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -12,11 +12,11 @@ locals { Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetAvailabilityZone = var.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 86% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index 7782e5d7..47611d54 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-app.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id InstanceType = local.AppInstanceType @@ -13,7 +13,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -45,4 +45,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..20532cb2 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,99 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} + +output "SshKey" { + sensitive = true + value = { + private_key_pem = tls_private_key.SshKey.private_key_pem + } +} diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf new file mode 100644 index 00000000..02f3b43c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf @@ -0,0 +1,6 @@ +provider "aws" { + access_key = local.AwsAccessCredentialsAccessKey + secret_key = local.AwsAccessCredentialsSecretKey + region = var.Region + max_retries = local.ApiMaxRetries +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 78% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index 9b5e1926..eb1abed5 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -1,10 +1,10 @@ # AgentInstanceType = "c5n.xlarge" # ApiMaxRetries = 1 # AppInstanceType = "t3.xlarge" -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] # PrivateSubnetAvailabilityZone = "us-east-1a" # PublicSubnetAvailabilityZone = "us-east-1a" # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..a51f2fde --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,79 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/versions.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 80% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/versions.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf index 45f4816e..283d241f 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/versions.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0.0" + version = ">= 6.27.0" } } -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 82% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3be11666..9de32d8f 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -1,5 +1,5 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=26.0.0" InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone @@ -17,4 +17,4 @@ resource "aws_security_group_rule" "PublicIngress3389" { from_port = 3389 to_port = 3389 cidr_blocks = local.InboundIPv4CidrBlocks -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..147342b8 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,60 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply ssh output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 91% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index 53a919ec..2c644616 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. @@ -26,4 +26,4 @@ terraform validate terraform plan terraform state list terraform output -``` \ No newline at end of file +``` diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..d2f0f10a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,19 @@ +data "aws_caller_identity" "current" {} + +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + +data "aws_region" "current" {} + +data "aws_availability_zones" "available" { + state = "available" +} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 97% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index 65218b16..fed29ddb 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -15,11 +15,11 @@ locals { Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetAvailabilityZone = var.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 85% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index 20fdfa04..2a28992f 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-app.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id InstanceType = local.AppInstanceType @@ -13,7 +13,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -31,7 +31,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id @@ -57,4 +57,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..fdffca5f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,141 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} + +output "SshKey" { + sensitive = true + value = { + private_key_pem = tls_private_key.SshKey.private_key_pem + } +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 78% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index 9b5e1926..eb1abed5 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -1,10 +1,10 @@ # AgentInstanceType = "c5n.xlarge" # ApiMaxRetries = 1 # AppInstanceType = "t3.xlarge" -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] # PrivateSubnetAvailabilityZone = "us-east-1a" # PublicSubnetAvailabilityZone = "us-east-1a" # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..a51f2fde --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,79 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 80% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf index 45f4816e..283d241f 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0.0" + version = ">= 6.27.0" } } -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 82% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3be11666..9de32d8f 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -1,5 +1,5 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=26.0.0" InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone @@ -17,4 +17,4 @@ resource "aws_security_group_rule" "PublicIngress3389" { from_port = 3389 to_port = 3389 cidr_blocks = local.InboundIPv4CidrBlocks -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile new file mode 100644 index 00000000..147342b8 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile @@ -0,0 +1,60 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply ssh output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md similarity index 91% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md index a74faded..c6521fda 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets +# IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets ## Description This deployment creates a topology with a single virtual private cloud having a single public facing subnet and two private subnets. @@ -26,4 +26,4 @@ terraform validate terraform plan terraform state list terraform output -``` \ No newline at end of file +``` diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf new file mode 100644 index 00000000..d2f0f10a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf @@ -0,0 +1,19 @@ +data "aws_caller_identity" "current" {} + +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + +data "aws_region" "current" {} + +data "aws_availability_zones" "available" { + state = "available" +} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf similarity index 97% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf index 64a76a42..ac1612aa 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -16,11 +16,11 @@ locals { Private1SubnetAvailabilityZone = var.Private1SubnetAvailabilityZone Private2SubnetAvailabilityZone = var.Private2SubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf similarity index 85% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf index fa7c4d6c..b913cfae 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-app.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id InstanceType = local.AppInstanceType @@ -13,7 +13,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -31,7 +31,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id @@ -57,4 +57,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 00000000..649bbd7e --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf @@ -0,0 +1,141 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} + +output "SshKey" { + sensitive = true + value = { + private_key_pem = tls_private_key.SshKey.private_key_pem + } +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/ssh.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/ssh.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/ssh.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/ssh.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars similarity index 81% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars index b152d63f..a8684091 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars @@ -1,11 +1,11 @@ # AgentInstanceType = "c5n.xlarge" # ApiMaxRetries = 1 # AppInstanceType = "t3.xlarge" -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] # Private1SubnetAvailabilityZone = "us-east-1a" # Private2SubnetAvailabilityZone = "us-east-1a" # PublicSubnetAvailabilityZone = "us-east-1a" # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf new file mode 100644 index 00000000..1d0d68a7 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -0,0 +1,84 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf similarity index 80% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf index 45f4816e..283d241f 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0.0" + version = ">= 6.27.0" } } -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf similarity index 84% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf index c4911212..48eea2ca 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf @@ -1,5 +1,5 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-2-private-subnets.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-2-private-subnets.git?ref=26.0.0" InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks Private1SubnetAvailabilityZone = local.Private1SubnetAvailabilityZone Private2SubnetAvailabilityZone = local.Private2SubnetAvailabilityZone @@ -18,4 +18,4 @@ resource "aws_security_group_rule" "PublicIngress3389" { from_port = 3389 to_port = 3389 cidr_blocks = local.InboundIPv4CidrBlocks -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/Makefile b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/Makefile new file mode 100644 index 00000000..147342b8 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/Makefile @@ -0,0 +1,60 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply ssh output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/README.md b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/README.md similarity index 96% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/README.md rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/README.md index dad7873f..59cdc73b 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/README.md +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-AWS-1-App-2-Agents-Add-On +# IxNetwork-on-AWS-1-App-2-VTAs-Add-On ## Description This deployment creates resources that will be attached to an existing network topology. diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/aws.variables.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/aws.variables.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/data.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/data.tf similarity index 79% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/data.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/data.tf index 1ade4270..0398d8c2 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/data.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/data.tf @@ -1,5 +1,13 @@ data "aws_caller_identity" "current" {} +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + data "aws_region" "current" {} data "aws_availability_zones" "available" { @@ -32,4 +40,4 @@ data "aws_subnet" "PublicSubnet" { name = "tag:Name" values = [ local.PublicSubnetName ] } -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/locals.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/locals.tf similarity index 70% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/locals.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/locals.tf index c5cc47c2..6ca20319 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/locals.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/locals.tf @@ -1,8 +1,10 @@ locals { AgentInstanceType = var.AgentInstanceType Agent1InstanceId = "agent1" - Agent2Eth0PrivateIpAddress = "10.0.10.12" - Agent2Eth1PrivateIpAddresses = [ "10.0.2.22", "10.0.2.23", "10.0.2.24", "10.0.2.25", "10.0.2.26", "10.0.2.27", "10.0.2.28", "10.0.2.29", "10.0.2.30", "10.0.2.31" ] + Agent1Eth0PrivateIpAddress = "10.0.10.13" + Agent1Eth1PrivateIpAddresses = [ "10.0.2.32", "10.0.2.33", "10.0.2.34", "10.0.2.35", "10.0.2.36", "10.0.2.37", "10.0.2.38", "10.0.2.39", "10.0.2.40", "10.0.2.41" ] + Agent2Eth0PrivateIpAddress = "10.0.10.14" + Agent2Eth1PrivateIpAddresses = [ "10.0.2.42", "10.0.2.43", "10.0.2.44", "10.0.2.45", "10.0.2.46", "10.0.2.47", "10.0.2.48", "10.0.2.49", "10.0.2.50", "10.0.2.51" ] Agent2InstanceId = "agent2" ApiMaxRetries = var.ApiMaxRetries AppInstanceType = var.AppInstanceType @@ -16,11 +18,11 @@ locals { PrivateSubnetName = var.PrivateSubnetName PublicSecurityGroupName = var.PublicSecurityGroupName PublicSubnetName = var.PublicSubnetName - Region = data.aws_region.current.name + Region = data.aws_region.current.id SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/main.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/main.tf similarity index 80% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/main.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/main.tf index 28e4e62e..1d6d817a 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/main.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-app.git?ref=26.0.0" Eth0SecurityGroupId = data.aws_security_group.PublicSecurityGroup.id Eth0SubnetId = data.aws_subnet.PublicSubnet.id InstanceType = local.AppInstanceType @@ -10,9 +10,11 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" + Eth0PrivateIpAddress = local.Agent1Eth0PrivateIpAddress Eth0SecurityGroupId = data.aws_security_group.PublicSecurityGroup.id Eth0SubnetId = data.aws_subnet.PublicSubnet.id + Eth1PrivateIpAddresses = local.Agent1Eth1PrivateIpAddresses Eth1SecurityGroupId = data.aws_security_group.PrivateSecurityGroup.id Eth1SubnetId = data.aws_subnet.PrivateSubnet.id InstanceId = local.Agent1InstanceId @@ -27,7 +29,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = data.aws_security_group.PublicSecurityGroup.id Eth0SubnetId = data.aws_subnet.PublicSubnet.id @@ -52,4 +54,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/output.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/output.tf new file mode 100644 index 00000000..fdffca5f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/output.tf @@ -0,0 +1,141 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} + +output "SshKey" { + sensitive = true + value = { + private_key_pem = tls_private_key.SshKey.private_key_pem + } +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/provider.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/ssh.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/ssh.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/ssh.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/ssh.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars similarity index 85% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars index 93ca8ebf..5bec66fc 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars @@ -4,4 +4,4 @@ # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/terraform.required.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/terraform.required.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/variables.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/variables.tf new file mode 100644 index 00000000..9331c609 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/variables.tf @@ -0,0 +1,83 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/versions.tf similarity index 80% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf rename to aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/versions.tf index 45f4816e..283d241f 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf +++ b/aws/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AWS-1-App-2-VTAs-Add-On/versions.tf @@ -3,7 +3,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0.0" + version = ">= 6.27.0" } } -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..0ebb55cf --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,50 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 89% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index bda12a30..a8ff5dfb 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 69% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf index f2a823c5..c5d78927 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf @@ -1,5 +1,9 @@ data "aws_caller_identity" "current" {} +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + data "aws_region" "current" {} data "aws_availability_zones" "available" { @@ -8,4 +12,4 @@ data "aws_availability_zones" "available" { data "http" "ip" { url = "https://ifconfig.me/ip" -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 96% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index aa8d4892..50557aa9 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -11,8 +11,8 @@ locals { Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetAvailabilityZone = var.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 89% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index eab0520d..0bd16909 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -31,4 +31,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..f14ec303 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,50 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/provider.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/provider.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 76% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index cbe1af8e..301714d3 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -1,9 +1,9 @@ # AgentInstanceType = "c5n.xlarge" # ApiMaxRetries = 1 -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] # PrivateSubnetAvailabilityZone = "us-east-1a" # PublicSubnetAvailabilityZone = "us-east-1a" # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..b43bce5a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,66 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 74% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3d15e192..2d50b91c 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -1,5 +1,5 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=26.0.0" InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone @@ -8,4 +8,4 @@ module "Vpc" { UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..78f3201c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,51 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +state: + time terraform state list + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 89% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index c43f7b32..aa528f26 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 69% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf index f2a823c5..c5d78927 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf @@ -1,5 +1,9 @@ data "aws_caller_identity" "current" {} +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + data "aws_region" "current" {} data "aws_availability_zones" "available" { @@ -8,4 +12,4 @@ data "aws_availability_zones" "available" { data "http" "ip" { url = "https://ifconfig.me/ip" -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 96% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index 6c5d6e37..31b1e5ea 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -14,8 +14,8 @@ locals { Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetAvailabilityZone = var.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 86% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index 3264b26a..cca2349f 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-cloud-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-cloud-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -17,7 +17,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-cloud-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-cloud-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id @@ -43,4 +43,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..80724394 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,92 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 76% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index cbe1af8e..301714d3 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -1,9 +1,9 @@ # AgentInstanceType = "c5n.xlarge" # ApiMaxRetries = 1 -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] # PrivateSubnetAvailabilityZone = "us-east-1a" # PublicSubnetAvailabilityZone = "us-east-1a" # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..b43bce5a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,66 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 74% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3d15e192..2d50b91c 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -1,5 +1,5 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=26.0.0" InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone @@ -8,4 +8,4 @@ module "Vpc" { UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..78f3201c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,51 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +state: + time terraform state list + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 88% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index fcb74775..1117a0a9 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 69% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf index f2a823c5..c5d78927 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf @@ -1,5 +1,9 @@ data "aws_caller_identity" "current" {} +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + data "aws_region" "current" {} data "aws_availability_zones" "available" { @@ -8,4 +12,4 @@ data "aws_availability_zones" "available" { data "http" "ip" { url = "https://ifconfig.me/ip" -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 94% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index fda59691..31b1e5ea 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -5,7 +5,7 @@ locals { Agent2Eth1PrivateIpAddresses = [ "10.0.2.22", "10.0.2.23", "10.0.2.24", "10.0.2.25", "10.0.2.26", "10.0.2.27", "10.0.2.28", "10.0.2.29", "10.0.2.30", "10.0.2.31" ] Agent2InstanceId = "agent2" ApiMaxRetries = var.ApiMaxRetries - AppTag = "ixnetwork-web" + AppTag = "ixnetwork" AwsAccessCredentialsAccessKey = var.AwsAccessCredentialsAccessKey AwsAccessCredentialsSecretKey = var.AwsAccessCredentialsSecretKey InboundIPv4CidrBlocks = var.InboundIPv4CidrBlocks == null ? [ "${data.http.ip.response_body}/32" ] : var.InboundIPv4CidrBlocks @@ -14,8 +14,8 @@ locals { Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetAvailabilityZone = var.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 87% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index 00cd1d10..4de0a819 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -17,7 +17,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id @@ -43,4 +43,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..80724394 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,92 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars new file mode 100644 index 00000000..301714d3 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -0,0 +1,9 @@ +# AgentInstanceType = "c5n.xlarge" +# ApiMaxRetries = 1 +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] +# PrivateSubnetAvailabilityZone = "us-east-1a" +# PublicSubnetAvailabilityZone = "us-east-1a" +# Region = "us-east-1" +# UserEmailTag = "terraform@example.com" +# UserLoginTag = "terraform" +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..b43bce5a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,66 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 74% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3d15e192..2d50b91c 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -1,5 +1,5 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=26.0.0" InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone @@ -8,4 +8,4 @@ module "Vpc" { UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile new file mode 100644 index 00000000..78f3201c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile @@ -0,0 +1,51 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +state: + time terraform state list + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md similarity index 89% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md index fbdea5e8..70094c5e 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,4 +1,4 @@ -# IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets +# IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets ## Description This deployment creates a topology with a single virtual private cloud having a single public facing subnet and two private subnets. diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/aws.variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/aws.variables.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf similarity index 69% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf index f2a823c5..c5d78927 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf @@ -1,5 +1,9 @@ data "aws_caller_identity" "current" {} +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + data "aws_region" "current" {} data "aws_availability_zones" "available" { @@ -8,4 +12,4 @@ data "aws_availability_zones" "available" { data "http" "ip" { url = "https://ifconfig.me/ip" -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf similarity index 96% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf index 5365ce0c..c385d519 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -15,8 +15,8 @@ locals { Private1SubnetAvailabilityZone = var.Private1SubnetAvailabilityZone Private2SubnetAvailabilityZone = var.Private2SubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf similarity index 87% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf index 94c6ec42..c2fc96d8 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -17,7 +17,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id @@ -43,4 +43,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 00000000..80724394 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf @@ -0,0 +1,92 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars similarity index 79% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars index 80e7be53..240a0efe 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars @@ -1,10 +1,10 @@ # AgentInstanceType = "c5n.xlarge" # ApiMaxRetries = 1 -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] # Private1SubnetAvailabilityZone = "us-east-1a" # Private2SubnetAvailabilityZone = "us-east-1a" # PublicSubnetAvailabilityZone = "us-east-1a" # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf new file mode 100644 index 00000000..1646fa6d --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -0,0 +1,71 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf similarity index 77% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf index b38ce19f..8d5a54b8 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf @@ -1,5 +1,5 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-2-private-subnets.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-2-private-subnets.git?ref=26.0.0" InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks Private1SubnetAvailabilityZone = local.Private1SubnetAvailabilityZone Private2SubnetAvailabilityZone = local.Private2SubnetAvailabilityZone @@ -9,4 +9,4 @@ module "Vpc" { UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/Makefile b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/Makefile new file mode 100644 index 00000000..628a6e8a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/Makefile @@ -0,0 +1,50 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 +state: + time terraform state list + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/README.md b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/README.md similarity index 95% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/README.md rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/README.md index 2fad8510..9b686115 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/README.md +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/README.md @@ -1,4 +1,4 @@ -# IxVM-on-AWS-2-Agents-Add-On +# IxNetwork-on-AWS-2-VTAs-Add-On ## Description This deployment creates resources that will be attached to an existing network topology. diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/data.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/data.tf similarity index 88% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/data.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/data.tf index 1ade4270..dc94b5cb 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/data.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/data.tf @@ -1,5 +1,9 @@ data "aws_caller_identity" "current" {} +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + data "aws_region" "current" {} data "aws_availability_zones" "available" { @@ -32,4 +36,4 @@ data "aws_subnet" "PublicSubnet" { name = "tag:Name" values = [ local.PublicSubnetName ] } -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/locals.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/locals.tf similarity index 96% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/locals.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/locals.tf index e589727f..0c285f8d 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/locals.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/locals.tf @@ -15,8 +15,8 @@ locals { PrivateSubnetName = var.PrivateSubnetName PublicSecurityGroupName = var.PublicSecurityGroupName PublicSubnetName = var.PublicSubnetName - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/main.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/main.tf similarity index 87% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/main.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/main.tf index f643ada8..0ea0bca4 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/main.tf +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = data.aws_security_group.PublicSecurityGroup.id Eth0SubnetId = data.aws_subnet.PublicSubnet.id Eth1SecurityGroupId = data.aws_security_group.PrivateSecurityGroup.id @@ -16,7 +16,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = data.aws_security_group.PublicSecurityGroup.id Eth0SubnetId = data.aws_subnet.PublicSubnet.id @@ -41,4 +41,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/output.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/output.tf new file mode 100644 index 00000000..80724394 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/output.tf @@ -0,0 +1,92 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/provider.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/provider.tf rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/provider.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/terraform.optional.auto.tfvars similarity index 82% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/terraform.optional.auto.tfvars index 7fa417d6..823ab2a7 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/terraform.optional.auto.tfvars @@ -3,4 +3,4 @@ # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/terraform.required.auto.tfvars b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/terraform.required.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/terraform.required.auto.tfvars rename to aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/terraform.required.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/variables.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/variables.tf new file mode 100644 index 00000000..01f25c40 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/variables.tf @@ -0,0 +1,70 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/versions.tf b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AWS-2-VTAs-Add-On/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index f10aa203..00000000 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,42 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "AppAmi" { - value = { - "image_id" : module.App.Ami.image_id - "name" : module.App.Ami.name - "owner_id" : module.App.Ami.owner_id - } -} - -output "AppEth0ElasticIp" { - value = { - "public_dns" : module.App.Eth0ElasticIp.public_dns - "public_ip" : module.App.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index 35719172..00000000 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf +++ /dev/null @@ -1,132 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index 16c2c278..00000000 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,49 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AppAmi" { - value = { - "image_id" : module.App.Ami.image_id - "name" : module.App.Ami.name - "owner_id" : module.App.Ami.owner_id - } -} - -output "AppEth0ElasticIp" { - value = { - "public_dns" : module.App.Eth0ElasticIp.public_dns - "public_ip" : module.App.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index 35719172..00000000 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf +++ /dev/null @@ -1,132 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf deleted file mode 100644 index 16c2c278..00000000 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf +++ /dev/null @@ -1,49 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AppAmi" { - value = { - "image_id" : module.App.Ami.image_id - "name" : module.App.Ami.name - "owner_id" : module.App.Ami.owner_id - } -} - -output "AppEth0ElasticIp" { - value = { - "public_dns" : module.App.Eth0ElasticIp.public_dns - "public_ip" : module.App.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf deleted file mode 100644 index 8c113c53..00000000 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf +++ /dev/null @@ -1,137 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/output.tf b/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/output.tf deleted file mode 100644 index 16c2c278..00000000 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/output.tf +++ /dev/null @@ -1,49 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AppAmi" { - value = { - "image_id" : module.App.Ami.image_id - "name" : module.App.Ami.name - "owner_id" : module.App.Ami.owner_id - } -} - -output "AppEth0ElasticIp" { - value = { - "public_dns" : module.App.Eth0ElasticIp.public_dns - "public_ip" : module.App.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/variables.tf b/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/variables.tf deleted file mode 100644 index 00877bc3..00000000 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/variables.tf +++ /dev/null @@ -1,136 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..4e45e214 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,53 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +state: + time terraform state list + +connect: connect-app + +connect-app: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 88% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index d4979f35..d321888e 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet +# IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..d2f0f10a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,19 @@ +data "aws_caller_identity" "current" {} + +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + +data "aws_region" "current" {} + +data "aws_availability_zones" "available" { + state = "available" +} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf new file mode 100644 index 00000000..e791b86d --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -0,0 +1,20 @@ +locals { + AgentInstanceType = var.AgentInstanceType + Agent1Eth2PrivateIpAddresses = [ "10.0.2.22", "10.0.2.23", "10.0.2.24", "10.0.2.25", "10.0.2.26", "10.0.2.27", "10.0.2.28", "10.0.2.29", "10.0.2.30", "10.0.2.31" ] + Agent1InstanceId = "agent1" + ApiMaxRetries = var.ApiMaxRetries + AppInstanceType = var.AppInstanceType + AppTag = "ixnetwork" + AwsAccessCredentialsAccessKey = var.AwsAccessCredentialsAccessKey + AwsAccessCredentialsSecretKey = var.AwsAccessCredentialsSecretKey + InboundIPv4CidrBlocks = var.InboundIPv4CidrBlocks == null ? [ "${data.http.ip.response_body}/32" ] : var.InboundIPv4CidrBlocks + PlacementGroupName = "${local.Preamble}-placement-group-${local.Region}" + PlacementGroupStrategy = "cluster" + Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" + PrivateSubnetAvailabilityZone = var.PrivateSubnetAvailabilityZone + PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone + Region = data.aws_region.current.id + UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag + UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag + UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf new file mode 100644 index 00000000..ccc035cf --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf @@ -0,0 +1,41 @@ +module "App" { + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-web-app.git?ref=26.0.0" + Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id + Eth0SubnetId = module.Vpc.PublicSubnet.id + InstanceType = local.AppInstanceType + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag + depends_on = [ + module.Vpc + ] +} + +module "Agent1" { + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-cloud-agent.git?ref=26.0.0.spoke" + Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id + Eth0SubnetId = module.Vpc.PublicSubnet.id + Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id + Eth1SubnetId = module.Vpc.PrivateSubnet.id + Eth2PrivateIpAddresses = local.Agent1Eth2PrivateIpAddresses + Eth2SecurityGroupId = module.Vpc.PrivateSecurityGroup.id + Eth2SubnetId = module.Vpc.PrivateSubnet.id + InstanceType = local.AgentInstanceType + PlacementGroupId = aws_placement_group.PlacementGroup.id + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag + depends_on = [ + aws_placement_group.PlacementGroup, + module.Vpc + ] +} + +resource "aws_placement_group" "PlacementGroup" { + name = local.PlacementGroupName + strategy = local.PlacementGroupStrategy +} + +resource "random_id" "RandomId" { + byte_length = 4 +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..14e0af6f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,92 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 78% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index 9b5e1926..eb1abed5 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -1,10 +1,10 @@ # AgentInstanceType = "c5n.xlarge" # ApiMaxRetries = 1 # AppInstanceType = "t3.xlarge" -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] # PrivateSubnetAvailabilityZone = "us-east-1a" # PublicSubnetAvailabilityZone = "us-east-1a" # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..11626d63 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,79 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 74% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3d15e192..2d50b91c 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -1,5 +1,5 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=26.0.0" InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone @@ -8,4 +8,4 @@ module "Vpc" { UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile new file mode 100644 index 00000000..2f98baf2 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile @@ -0,0 +1,57 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +ena-express: + chmod +x ./CloudShell/aws-enable-ena-express.sh + ./CloudShell/aws-enable-ena-express.sh $$(terraform output -json Agent1 | jq -r .id) $$(terraform output -json AvailabilityZones | jq -r .region) + +state: + time terraform state list + +connect: connect-app + +connect-app: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md similarity index 87% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md index 045fee14..e61947d3 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,4 +1,4 @@ -# IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets +# IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets ## Description This deployment creates a topology with a single virtual private cloud having a single public facing subnet and two private subnets. diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf new file mode 100644 index 00000000..d2f0f10a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf @@ -0,0 +1,19 @@ +data "aws_caller_identity" "current" {} + +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + +data "aws_region" "current" {} + +data "aws_availability_zones" "available" { + state = "available" +} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf new file mode 100644 index 00000000..aeb79ee7 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -0,0 +1,20 @@ +locals { + AgentInstanceType = var.AgentInstanceType + Agent1InstanceId = "agent1" + ApiMaxRetries = var.ApiMaxRetries + AppInstanceType = var.AppInstanceType + AppTag = "ixnetwork" + AwsAccessCredentialsAccessKey = var.AwsAccessCredentialsAccessKey + AwsAccessCredentialsSecretKey = var.AwsAccessCredentialsSecretKey + InboundIPv4CidrBlocks = var.InboundIPv4CidrBlocks == null ? [ "${data.http.ip.response_body}/32" ] : var.InboundIPv4CidrBlocks + PlacementGroupName = "${local.Preamble}-placement-group-${local.Region}" + PlacementGroupStrategy = "cluster" + Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" + Private1SubnetAvailabilityZone = var.Private1SubnetAvailabilityZone + Private2SubnetAvailabilityZone = var.Private2SubnetAvailabilityZone + PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone + Region = data.aws_region.current.id + UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag + UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag + UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf new file mode 100644 index 00000000..fbe049b7 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf @@ -0,0 +1,40 @@ +module "App" { + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-web-app.git?ref=26.0.0" + Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id + Eth0SubnetId = module.Vpc.PublicSubnet.id + InstanceType = local.AppInstanceType + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag + depends_on = [ + module.Vpc + ] +} + +module "Agent1" { + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-cloud-agent.git?ref=26.0.0.spoke" + Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id + Eth0SubnetId = module.Vpc.PublicSubnet.id + Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id + Eth1SubnetId = module.Vpc.Private1Subnet.id + Eth2SecurityGroupId = module.Vpc.PrivateSecurityGroup.id + Eth2SubnetId = module.Vpc.Private2Subnet.id + InstanceType = local.AgentInstanceType + PlacementGroupId = aws_placement_group.PlacementGroup.id + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag + depends_on = [ + aws_placement_group.PlacementGroup, + module.Vpc + ] +} + +resource "aws_placement_group" "PlacementGroup" { + name = local.PlacementGroupName + strategy = local.PlacementGroupStrategy +} + +resource "random_id" "RandomId" { + byte_length = 4 +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 00000000..14e0af6f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf @@ -0,0 +1,92 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars similarity index 81% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars index b152d63f..a8684091 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars @@ -1,11 +1,11 @@ # AgentInstanceType = "c5n.xlarge" # ApiMaxRetries = 1 # AppInstanceType = "t3.xlarge" -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] # Private1SubnetAvailabilityZone = "us-east-1a" # Private2SubnetAvailabilityZone = "us-east-1a" # PublicSubnetAvailabilityZone = "us-east-1a" # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf new file mode 100644 index 00000000..fbb5f230 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -0,0 +1,84 @@ +variable "AgentInstanceType" { + default = "c6in.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf similarity index 77% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf index b38ce19f..8d5a54b8 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-CTA-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf @@ -1,5 +1,5 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-2-private-subnets.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-2-private-subnets.git?ref=26.0.0" InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks Private1SubnetAvailabilityZone = local.Private1SubnetAvailabilityZone Private2SubnetAvailabilityZone = local.Private2SubnetAvailabilityZone @@ -9,4 +9,4 @@ module "Vpc" { UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..4e45e214 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,53 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +state: + time terraform state list + +connect: connect-app + +connect-app: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..9a3df945 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,26 @@ +# IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. + +## Optional Variables +``` +terraform.aws.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..d2f0f10a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,19 @@ +data "aws_caller_identity" "current" {} + +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + +data "aws_region" "current" {} + +data "aws_availability_zones" "available" { + state = "available" +} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 93% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index 9e87735f..269111d1 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -3,7 +3,7 @@ locals { Agent1InstanceId = "agent1" ApiMaxRetries = var.ApiMaxRetries AppInstanceType = var.AppInstanceType - AppTag = "ixnetwork-web" + AppTag = "ixnetwork" AwsAccessCredentialsAccessKey = var.AwsAccessCredentialsAccessKey AwsAccessCredentialsSecretKey = var.AwsAccessCredentialsSecretKey InboundIPv4CidrBlocks = var.InboundIPv4CidrBlocks == null ? [ "${data.http.ip.response_body}/32" ] : var.InboundIPv4CidrBlocks @@ -12,8 +12,8 @@ locals { Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetAvailabilityZone = var.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 85% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index ccfd568c..c1d465b3 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-web-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-web-app.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id InstanceType = local.AppInstanceType @@ -12,7 +12,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -44,4 +44,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..026dc859 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,92 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 78% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index 9b5e1926..eb1abed5 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -1,10 +1,10 @@ # AgentInstanceType = "c5n.xlarge" # ApiMaxRetries = 1 # AppInstanceType = "t3.xlarge" -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] # PrivateSubnetAvailabilityZone = "us-east-1a" # PublicSubnetAvailabilityZone = "us-east-1a" # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..a51f2fde --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,79 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf new file mode 100644 index 00000000..2d50b91c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -0,0 +1,11 @@ +module "Vpc" { + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=26.0.0" + InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks + PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone + PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone + Region = local.Region + Tag = local.AppTag + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..d7351e44 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,57 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +state: + time terraform state list + +connect: connect-app + +connect-app: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..1437069c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,26 @@ +# IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. + +## Optional Variables +``` +terraform.aws.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..d2f0f10a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,19 @@ +data "aws_caller_identity" "current" {} + +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + +data "aws_region" "current" {} + +data "aws_availability_zones" "available" { + state = "available" +} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 94% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index 6814794d..b0fe0c0f 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -6,7 +6,7 @@ locals { Agent2InstanceId = "agent2" ApiMaxRetries = var.ApiMaxRetries AppInstanceType = var.AppInstanceType - AppTag = "ixnetwork-web" + AppTag = "ixnetwork" AwsAccessCredentialsAccessKey = var.AwsAccessCredentialsAccessKey AwsAccessCredentialsSecretKey = var.AwsAccessCredentialsSecretKey InboundIPv4CidrBlocks = var.InboundIPv4CidrBlocks == null ? [ "${data.http.ip.response_body}/32" ] : var.InboundIPv4CidrBlocks @@ -15,8 +15,8 @@ locals { Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetAvailabilityZone = var.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 84% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index 5eefa3d7..caa401b3 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-web-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-web-app.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id InstanceType = local.AppInstanceType @@ -12,7 +12,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-cloud-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-cloud-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -30,7 +30,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-cloud-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-cloud-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id @@ -56,4 +56,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..87508aac --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,134 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars new file mode 100644 index 00000000..eb1abed5 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -0,0 +1,10 @@ +# AgentInstanceType = "c5n.xlarge" +# ApiMaxRetries = 1 +# AppInstanceType = "t3.xlarge" +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] +# PrivateSubnetAvailabilityZone = "us-east-1a" +# PublicSubnetAvailabilityZone = "us-east-1a" +# Region = "us-east-1" +# UserEmailTag = "terraform@example.com" +# UserLoginTag = "terraform" +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..a51f2fde --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,79 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf new file mode 100644 index 00000000..2d50b91c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-CTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -0,0 +1,11 @@ +module "Vpc" { + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=26.0.0" + InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks + PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone + PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone + Region = local.Region + Tag = local.AppTag + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..d7351e44 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,57 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +state: + time terraform state list + +connect: connect-app + +connect-app: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..20377434 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,26 @@ +# IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. + +## Optional Variables +``` +terraform.aws.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/aws.variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/aws.variables.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..d2f0f10a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,19 @@ +data "aws_caller_identity" "current" {} + +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + +data "aws_region" "current" {} + +data "aws_availability_zones" "available" { + state = "available" +} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 94% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index 6814794d..b0fe0c0f 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -6,7 +6,7 @@ locals { Agent2InstanceId = "agent2" ApiMaxRetries = var.ApiMaxRetries AppInstanceType = var.AppInstanceType - AppTag = "ixnetwork-web" + AppTag = "ixnetwork" AwsAccessCredentialsAccessKey = var.AwsAccessCredentialsAccessKey AwsAccessCredentialsSecretKey = var.AwsAccessCredentialsSecretKey InboundIPv4CidrBlocks = var.InboundIPv4CidrBlocks == null ? [ "${data.http.ip.response_body}/32" ] : var.InboundIPv4CidrBlocks @@ -15,8 +15,8 @@ locals { Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetAvailabilityZone = var.PrivateSubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 84% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index 1e0fea37..1e74c5bc 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-web-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-web-app.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id InstanceType = local.AppInstanceType @@ -12,7 +12,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -30,7 +30,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id @@ -56,4 +56,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..87508aac --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,134 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars new file mode 100644 index 00000000..eb1abed5 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -0,0 +1,10 @@ +# AgentInstanceType = "c5n.xlarge" +# ApiMaxRetries = 1 +# AppInstanceType = "t3.xlarge" +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] +# PrivateSubnetAvailabilityZone = "us-east-1a" +# PublicSubnetAvailabilityZone = "us-east-1a" +# Region = "us-east-1" +# UserEmailTag = "terraform@example.com" +# UserLoginTag = "terraform" +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..a51f2fde --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,79 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf new file mode 100644 index 00000000..2d50b91c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -0,0 +1,11 @@ +module "Vpc" { + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=26.0.0" + InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks + PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone + PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone + Region = local.Region + Tag = local.AppTag + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile new file mode 100644 index 00000000..1929b197 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile @@ -0,0 +1,61 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +ena-express: + chmod +x ./CloudShell/aws-enable-ena-express.sh + ./CloudShell/aws-enable-ena-express.sh $$(terraform output -json Agent1 | jq -r .id) $$(terraform output -json AvailabilityZones | jq -r .region) + +state: + time terraform state list + +connect: connect-app + +connect-app: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md similarity index 77% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md index 63357716..a0cf3f7f 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,7 +1,7 @@ -# IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet +# IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets ## Description -This deployment creates a topology with a single virtual private cloud having a single public facing subnet. +This deployment creates a topology with a single virtual private cloud having a single public facing subnet and two private subnets. ## Optional Variables ``` diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf new file mode 100644 index 00000000..d2f0f10a --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf @@ -0,0 +1,19 @@ +data "aws_caller_identity" "current" {} + +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + +data "aws_region" "current" {} + +data "aws_availability_zones" "available" { + state = "available" +} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf similarity index 95% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf index be28008c..1d246a03 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -6,7 +6,7 @@ locals { Agent2InstanceId = "agent2" ApiMaxRetries = var.ApiMaxRetries AppInstanceType = var.AppInstanceType - AppTag = "ixnetwork-web" + AppTag = "ixnetwork" AwsAccessCredentialsAccessKey = var.AwsAccessCredentialsAccessKey AwsAccessCredentialsSecretKey = var.AwsAccessCredentialsSecretKey InboundIPv4CidrBlocks = var.InboundIPv4CidrBlocks == null ? [ "${data.http.ip.response_body}/32" ] : var.InboundIPv4CidrBlocks @@ -16,8 +16,8 @@ locals { Private1SubnetAvailabilityZone = var.Private1SubnetAvailabilityZone Private2SubnetAvailabilityZone = var.Private2SubnetAvailabilityZone PublicSubnetAvailabilityZone = var.PublicSubnetAvailabilityZone - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf similarity index 84% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf index a834ed23..3b624779 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-web-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-web-app.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id InstanceType = local.AppInstanceType @@ -12,7 +12,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id Eth1SecurityGroupId = module.Vpc.PrivateSecurityGroup.id @@ -30,7 +30,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = module.Vpc.PublicSecurityGroup.id Eth0SubnetId = module.Vpc.PublicSubnet.id @@ -56,4 +56,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 00000000..75cbf67f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf @@ -0,0 +1,134 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/provider.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/provider.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars new file mode 100644 index 00000000..a8684091 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars @@ -0,0 +1,11 @@ +# AgentInstanceType = "c5n.xlarge" +# ApiMaxRetries = 1 +# AppInstanceType = "t3.xlarge" +# InboundIPv4CidrBlocks = [ "0.0.0.0/0" ] +# Private1SubnetAvailabilityZone = "us-east-1a" +# Private2SubnetAvailabilityZone = "us-east-1a" +# PublicSubnetAvailabilityZone = "us-east-1a" +# Region = "us-east-1" +# UserEmailTag = "terraform@example.com" +# UserLoginTag = "terraform" +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf new file mode 100644 index 00000000..1d0d68a7 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -0,0 +1,84 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf new file mode 100644 index 00000000..8d5a54b8 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf @@ -0,0 +1,12 @@ +module "Vpc" { + source = "git::https://github.com/Keysight/terraform-aws-module-1-vpc-1-public-subnet-2-private-subnets.git?ref=26.0.0" + InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks + Private1SubnetAvailabilityZone = local.Private1SubnetAvailabilityZone + Private2SubnetAvailabilityZone = local.Private2SubnetAvailabilityZone + PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone + Region = local.Region + Tag = local.AppTag + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/CloudShell/connect.sh b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/CloudShell/connect.sh new file mode 100644 index 00000000..7bf79dd0 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/CloudShell/connect.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +while getopts i: flag +do + case "${flag}" in + i) PublicIp=${OPTARG};; + esac +done + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" \ + --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ + --output table +AgentId=$(aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=network-interface.association.public-ip,Values=$PublicIp" --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" --output json | jq .[0][0] --raw-output) +aws ssm start-session \ + --target $AgentId \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/Makefile b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/Makefile new file mode 100644 index 00000000..d7351e44 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/Makefile @@ -0,0 +1,57 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 + +state: + time terraform state list + +connect: connect-app + +connect-app: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json App | jq -r .eth0.eip.public_ip) + +connect-agent1: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent1 | jq -r .eth0.eip.public_ip) + +connect-agent2: + chmod +x ./CloudShell/connect.sh + ./CloudShell/connect.sh -i $$(terraform output -json Agent2 | jq -r .eth0.eip.public_ip) diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/README.md b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/README.md similarity index 94% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/README.md rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/README.md index c033536d..27ec1dd4 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/README.md +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/README.md @@ -1,4 +1,4 @@ -# IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On +# IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On ## Description This deployment creates resources that will be attached to an existing network topology. diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/aws.variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/aws.variables.tf new file mode 100644 index 00000000..58e5b3ab --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/aws.variables.tf @@ -0,0 +1,13 @@ +variable "AwsAccessCredentialsAccessKey" { + default = null + description = "Access key component of credentials used for programmatic calls to AWS." + sensitive = true + type = string +} + +variable "AwsAccessCredentialsSecretKey" { + default = null + description = "Secret access key component of credentials used for programmatic calls to AWS." + sensitive = true + type = string +} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/data.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/data.tf similarity index 79% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/data.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/data.tf index 1ade4270..0398d8c2 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/data.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/data.tf @@ -1,5 +1,13 @@ data "aws_caller_identity" "current" {} +data "aws_ec2_instance_type" "Agent" { + instance_type = local.AgentInstanceType +} + +data "aws_ec2_instance_type" "App" { + instance_type = local.AppInstanceType +} + data "aws_region" "current" {} data "aws_availability_zones" "available" { @@ -32,4 +40,4 @@ data "aws_subnet" "PublicSubnet" { name = "tag:Name" values = [ local.PublicSubnetName ] } -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/locals.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/locals.tf similarity index 94% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/locals.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/locals.tf index 38d3365f..6a90ea70 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/locals.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/locals.tf @@ -6,7 +6,7 @@ locals { Agent2InstanceId = "agent2" ApiMaxRetries = var.ApiMaxRetries AppInstanceType = var.AppInstanceType - AppTag = "ixnetwork-web" + AppTag = "ixnetwork" AwsAccessCredentialsAccessKey = var.AwsAccessCredentialsAccessKey AwsAccessCredentialsSecretKey = var.AwsAccessCredentialsSecretKey PlacementGroupName = "${local.Preamble}-placement-group-${local.Region}" @@ -16,8 +16,8 @@ locals { PrivateSubnetName = var.PrivateSubnetName PublicSecurityGroupName = var.PublicSecurityGroupName PublicSubnetName = var.PublicSubnetName - Region = data.aws_region.current.name + Region = data.aws_region.current.id UserEmailTag = var.UserEmailTag == null ? data.aws_caller_identity.current.user_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/main.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/main.tf similarity index 85% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/main.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/main.tf index 9c9d1e59..34b06cde 100644 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/main.tf +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/main.tf @@ -1,5 +1,5 @@ module "App" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-web-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-web-app.git?ref=26.0.0" Eth0SecurityGroupId = data.aws_security_group.PublicSecurityGroup.id Eth0SubnetId = data.aws_subnet.PublicSubnet.id InstanceType = local.AppInstanceType @@ -9,7 +9,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0SecurityGroupId = data.aws_security_group.PublicSecurityGroup.id Eth0SubnetId = data.aws_subnet.PublicSubnet.id Eth1SecurityGroupId = data.aws_security_group.PrivateSecurityGroup.id @@ -26,7 +26,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixnetwork-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixnetwork-agent.git?ref=26.0.0" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SecurityGroupId = data.aws_security_group.PublicSecurityGroup.id Eth0SubnetId = data.aws_subnet.PublicSubnet.id @@ -51,4 +51,4 @@ resource "aws_placement_group" "PlacementGroup" { resource "random_id" "RandomId" { byte_length = 4 -} \ No newline at end of file +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/output.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/output.tf new file mode 100644 index 00000000..d1e6dc1c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/output.tf @@ -0,0 +1,134 @@ +output "Agent1" { + value = { + ami = { + image_id = module.Agent1.Ami.image_id + name = module.Agent1.Ami.name + owner_id = module.Agent1.Ami.owner_id + } + availability_zone = module.Agent1.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent1.Eth0ElasticIp.public_dns + public_ip = module.Agent1.Eth0ElasticIp.public_ip + } + } + id = module.Agent1.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent1.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent1.Instance.private_dns + private_ip = module.Agent1.Instance.private_ip + } +} + +output "Agent2" { + value = { + ami = { + image_id = module.Agent2.Ami.image_id + name = module.Agent2.Ami.name + owner_id = module.Agent2.Ami.owner_id + } + availability_zone = module.Agent2.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.Agent2.Eth0ElasticIp.public_dns + public_ip = module.Agent2.Eth0ElasticIp.public_ip + } + } + id = module.Agent2.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.Agent.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.Agent.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.Agent.default_cores + default_network_card_index = data.aws_ec2_instance_type.Agent.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.Agent.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.Agent.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.Agent.ena_srd_supported + ena_support = data.aws_ec2_instance_type.Agent.ena_support + hypervisor = data.aws_ec2_instance_type.Agent.hypervisor + ipv6_supported = data.aws_ec2_instance_type.Agent.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.Agent.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.Agent.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.Agent.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.Agent.memory_size + name = module.Agent2.Instance.instance_type + network_performance = data.aws_ec2_instance_type.Agent.network_performance + supported_architectures = data.aws_ec2_instance_type.Agent.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.Agent.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.Agent.supported_placement_strategies + } + private_dns = module.Agent2.Instance.private_dns + private_ip = module.Agent2.Instance.private_ip + } +} + +output "App" { + value = { + ami = { + image_id = module.App.Ami.image_id + name = module.App.Ami.name + owner_id = module.App.Ami.owner_id + } + availability_zone = module.App.Instance.availability_zone + eth0 = { + eip = { + public_dns = module.App.Eth0ElasticIp.public_dns + public_ip = module.App.Eth0ElasticIp.public_ip + } + } + id = module.App.Instance.id + instance_type = { + current_generation = data.aws_ec2_instance_type.App.current_generation + dedicated_hosts_supported = data.aws_ec2_instance_type.App.dedicated_hosts_supported + default_cores = data.aws_ec2_instance_type.App.default_cores + default_network_card_index = data.aws_ec2_instance_type.App.default_network_card_index + default_threads_per_core = data.aws_ec2_instance_type.App.default_threads_per_core + default_vcpus = data.aws_ec2_instance_type.App.default_vcpus + ena_srd_supported = data.aws_ec2_instance_type.App.ena_srd_supported + ena_support = data.aws_ec2_instance_type.App.ena_support + hypervisor = data.aws_ec2_instance_type.App.hypervisor + ipv6_supported = data.aws_ec2_instance_type.App.ipv6_supported + maximum_ipv4_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv4_addresses_per_interface + maximum_ipv6_addresses_per_interface = data.aws_ec2_instance_type.App.maximum_ipv6_addresses_per_interface + maximum_network_cards = data.aws_ec2_instance_type.App.maximum_network_cards + maximum_network_interfaces = data.aws_ec2_instance_type.App.maximum_network_interfaces + memory_size = data.aws_ec2_instance_type.App.memory_size + name = module.App.Instance.instance_type + network_performance = data.aws_ec2_instance_type.App.network_performance + supported_architectures = data.aws_ec2_instance_type.App.supported_architectures + supported_cpu_features = data.aws_ec2_instance_type.App.supported_cpu_features + supported_placement_strategies = data.aws_ec2_instance_type.App.supported_placement_strategies + } + private_dns = module.App.Instance.private_dns + private_ip = module.App.Instance.private_ip + } +} + +output "AvailabilityZones" { + value = { + available = { + names = data.aws_availability_zones.available.names + } + region = data.aws_availability_zones.available.region + } +} diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/provider.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/terraform.aws.auto.tfvars new file mode 100644 index 00000000..1c322d93 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/terraform.aws.auto.tfvars @@ -0,0 +1,2 @@ +# AwsAccessCredentialsAccessKey = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +# AwsAccessCredentialsSecretKey = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars similarity index 85% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars index 93ca8ebf..5bec66fc 100644 --- a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars @@ -4,4 +4,4 @@ # Region = "us-east-1" # UserEmailTag = "terraform@example.com" # UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file +# UserProjectTag = "cloud-ist" diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.required.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.required.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/variables.tf new file mode 100644 index 00000000..9331c609 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/variables.tf @@ -0,0 +1,83 @@ +variable "AgentInstanceType" { + default = "c5n.xlarge" + description = "Instance type of Agent VM" + type = string + validation { + condition = contains([ "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", + "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge" ], var.AgentInstanceType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/versions.tf new file mode 100644 index 00000000..283d241f --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-App-2-VTAs-Add-On/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 6.27.0" + } + } +} diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 00000000..b69645ed --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile @@ -0,0 +1,43 @@ +SHELL := /bin/bash + +aws: install all + +all: init apply output + +clean: state destroy + +install: +ifeq ($(shell grep "^ID=" /etc/*elease | cut -d "=" -f 2| sed -e 's/^"//' -e 's/"$$//' 2> /dev/null), amzn) +ifeq ($(shell command -v terraform 2> /dev/null),) + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo + sudo yum -y install terraform +endif +endif + +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 AppEth0ElasticIp + +state: + time terraform state list \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..27c15c3c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,26 @@ +# IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. + +## Optional Variables +``` +terraform.aws.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf new file mode 100644 index 00000000..58e5b3ab --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf @@ -0,0 +1,13 @@ +variable "AwsAccessCredentialsAccessKey" { + default = null + description = "Access key component of credentials used for programmatic calls to AWS." + sensitive = true + type = string +} + +variable "AwsAccessCredentialsSecretKey" { + default = null + description = "Secret access key component of credentials used for programmatic calls to AWS." + sensitive = true + type = string +} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf new file mode 100644 index 00000000..dc90be9c --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf @@ -0,0 +1,6 @@ +provider "aws" { + access_key = local.AwsAccessCredentialsAccessKey + secret_key = local.AwsAccessCredentialsSecretKey + region = var.Region + max_retries = local.ApiMaxRetries +} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars new file mode 100644 index 00000000..1c322d93 --- /dev/null +++ b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars @@ -0,0 +1,2 @@ +# AwsAccessCredentialsAccessKey = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +# AwsAccessCredentialsSecretKey = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetwork/IxNetwork-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 100% rename from aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-AWS-1-CTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index 3500f8ce..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,35 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "AppAmi" { - value = { - "image_id" : module.App.Ami.image_id - "name" : module.App.Ami.name - "owner_id" : module.App.Ami.owner_id - } -} - -output "AppEth0ElasticIp" { - value = { - "public_dns" : module.App.Eth0ElasticIp.public_dns - "public_ip" : module.App.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index 35719172..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf +++ /dev/null @@ -1,132 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index aa5fc55f..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,42 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AppAmi" { - value = { - "image_id" : module.App.Ami.image_id - "name" : module.App.Ami.name - "owner_id" : module.App.Ami.owner_id - } -} - -output "AppEth0ElasticIp" { - value = { - "public_dns" : module.App.Eth0ElasticIp.public_dns - "public_ip" : module.App.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index 35719172..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf +++ /dev/null @@ -1,132 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf deleted file mode 100644 index f2a823c5..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf +++ /dev/null @@ -1,11 +0,0 @@ -data "aws_caller_identity" "current" {} - -data "aws_region" "current" {} - -data "aws_availability_zones" "available" { - state = "available" -} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf deleted file mode 100644 index aa5fc55f..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf +++ /dev/null @@ -1,42 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AppAmi" { - value = { - "image_id" : module.App.Ami.image_id - "name" : module.App.Ami.name - "owner_id" : module.App.Ami.owner_id - } -} - -output "AppEth0ElasticIp" { - value = { - "public_dns" : module.App.Eth0ElasticIp.public_dns - "public_ip" : module.App.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf deleted file mode 100644 index 8c113c53..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf +++ /dev/null @@ -1,137 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/output.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/output.tf deleted file mode 100644 index aa5fc55f..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/output.tf +++ /dev/null @@ -1,42 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AppAmi" { - value = { - "image_id" : module.App.Ami.image_id - "name" : module.App.Ami.name - "owner_id" : module.App.Ami.owner_id - } -} - -output "AppEth0ElasticIp" { - value = { - "public_dns" : module.App.Eth0ElasticIp.public_dns - "public_ip" : module.App.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/variables.tf deleted file mode 100644 index 00877bc3..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/variables.tf +++ /dev/null @@ -1,136 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Agents-Add-On/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md deleted file mode 100644 index 524db4e1..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet - -## Description -This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. - -## Optional Variables -``` -terraform.aws.auto.tfvars -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -terraform plan -terraform state list -terraform output -``` \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf deleted file mode 100644 index f2a823c5..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ /dev/null @@ -1,11 +0,0 @@ -data "aws_caller_identity" "current" {} - -data "aws_region" "current" {} - -data "aws_availability_zones" "available" { - state = "available" -} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index aa5fc55f..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,42 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AppAmi" { - value = { - "image_id" : module.App.Ami.image_id - "name" : module.App.Ami.name - "owner_id" : module.App.Ami.owner_id - } -} - -output "AppEth0ElasticIp" { - value = { - "public_dns" : module.App.Eth0ElasticIp.public_dns - "public_ip" : module.App.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars deleted file mode 100644 index 9b5e1926..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ /dev/null @@ -1,10 +0,0 @@ -# AgentInstanceType = "c5n.xlarge" -# ApiMaxRetries = 1 -# AppInstanceType = "t3.xlarge" -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] -# PrivateSubnetAvailabilityZone = "us-east-1a" -# PublicSubnetAvailabilityZone = "us-east-1a" -# Region = "us-east-1" -# UserEmailTag = "terraform@example.com" -# UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index 35719172..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf +++ /dev/null @@ -1,132 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-App-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf deleted file mode 100644 index f2a823c5..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ /dev/null @@ -1,11 +0,0 @@ -data "aws_caller_identity" "current" {} - -data "aws_region" "current" {} - -data "aws_availability_zones" "available" { - state = "available" -} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-AWS-1-Cloud-App-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf deleted file mode 100644 index f2a823c5..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ /dev/null @@ -1,11 +0,0 @@ -data "aws_caller_identity" "current" {} - -data "aws_region" "current" {} - -data "aws_availability_zones" "available" { - state = "available" -} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index e641d575..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,20 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index c604785b..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf +++ /dev/null @@ -1,93 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf deleted file mode 100644 index f2a823c5..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ /dev/null @@ -1,11 +0,0 @@ -data "aws_caller_identity" "current" {} - -data "aws_region" "current" {} - -data "aws_availability_zones" "available" { - state = "available" -} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index 270b5887..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,27 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index c604785b..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf +++ /dev/null @@ -1,93 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf deleted file mode 100644 index 3d15e192..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ /dev/null @@ -1,11 +0,0 @@ -module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=11.0.0" - InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks - PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone - PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone - Region = local.Region - Tag = local.AppTag - UserEmailTag = local.UserEmailTag - UserLoginTag = local.UserLoginTag - UserProjectTag = local.UserProjectTag -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf deleted file mode 100644 index f2a823c5..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf +++ /dev/null @@ -1,11 +0,0 @@ -data "aws_caller_identity" "current" {} - -data "aws_region" "current" {} - -data "aws_availability_zones" "available" { - state = "available" -} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf deleted file mode 100644 index 270b5887..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf +++ /dev/null @@ -1,27 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf deleted file mode 100644 index 26f05dfe..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf +++ /dev/null @@ -1,98 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/output.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/output.tf deleted file mode 100644 index 270b5887..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/output.tf +++ /dev/null @@ -1,27 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/variables.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/variables.tf deleted file mode 100644 index 1b28b7cf..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/variables.tf +++ /dev/null @@ -1,97 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/versions.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md deleted file mode 100644 index c3ae5613..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# IxNetworkWeb-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet - -## Description -This deployment creates a topology with a single virtual private cloud having a single public facing subnet and a single private subnet. - -## Optional Variables -``` -terraform.aws.auto.tfvars -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -terraform plan -terraform state list -terraform output -``` \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf deleted file mode 100644 index f2a823c5..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ /dev/null @@ -1,11 +0,0 @@ -data "aws_caller_identity" "current" {} - -data "aws_region" "current" {} - -data "aws_availability_zones" "available" { - state = "available" -} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index 270b5887..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,27 +0,0 @@ -output "AgentAmi" { - value = { - "image_id" : module.Agent1.Ami.image_id - "name" : module.Agent1.Ami.name - "owner_id" : module.Agent1.Ami.owner_id - } -} - -output "Agent1Eth0ElasticIp" { - value = { - "public_dns" : module.Agent1.Eth0ElasticIp.public_dns - "public_ip" : module.Agent1.Eth0ElasticIp.public_ip - } -} - -output "Agent2Eth0ElasticIp" { - value = { - "public_dns" : module.Agent2.Eth0ElasticIp.public_dns - "public_ip" : module.Agent2.Eth0ElasticIp.public_ip - } -} - -output "AvailabilityZones" { - value = { - "available.names" : data.aws_availability_zones.available.names - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars deleted file mode 100644 index 9b5e1926..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ /dev/null @@ -1,10 +0,0 @@ -# AgentInstanceType = "c5n.xlarge" -# ApiMaxRetries = 1 -# AppInstanceType = "t3.xlarge" -# InboundIPv4CidrBlocks = [ "1.1.1.1/32" ] -# PrivateSubnetAvailabilityZone = "us-east-1a" -# PublicSubnetAvailabilityZone = "us-east-1a" -# Region = "us-east-1" -# UserEmailTag = "terraform@example.com" -# UserLoginTag = "terraform" -# UserProjectTag = "cloud-ist" \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index c604785b..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf +++ /dev/null @@ -1,93 +0,0 @@ -variable "AgentInstanceType" { - default = "c5n.xlarge" - description = "Instance type of Agent VM" - type = string - validation { - condition = contains([ "t3.xlarge", "t3.2xlarge", - "t3a.xlarge", "t3a.2xlarge", - "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", - "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", - "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", - "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", - "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", - "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", - "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", - "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", - "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", - "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", - "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", - "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", - "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" - ], var.AgentInstanceType) - error_message = <= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf deleted file mode 100644 index 45f4816e..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_version = ">= 1.5.7" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0.0" - } - } -} \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf deleted file mode 100644 index 3d15e192..00000000 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Cloud-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ /dev/null @@ -1,11 +0,0 @@ -module "Vpc" { - source = "git::https://github.com/armdupre/terraform-aws-module-1-vpc-1-public-subnet-1-private-subnet.git?ref=11.0.0" - InboundIPv4CidrBlocks = local.InboundIPv4CidrBlocks - PrivateSubnetAvailabilityZone = local.PrivateSubnetAvailabilityZone - PublicSubnetAvailabilityZone = local.PublicSubnetAvailabilityZone - Region = local.Region - Tag = local.AppTag - UserEmailTag = local.UserEmailTag - UserLoginTag = local.UserLoginTag - UserProjectTag = local.UserProjectTag -} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars deleted file mode 100644 index 21a327ec..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -# Credentials = "~/gcp/credentials.json" -# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md similarity index 75% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md index eff4af4b..bd056feb 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with two virtual private clouds, one having a single public facing subnet and the other having a single private subnet. @@ -12,9 +12,10 @@ Otherwise, Terraform will prompt the user to supply input arguents via cli. ## Optional Variables ``` +terraform.gcp.auto.tfvars terraform.optional.auto.tfvars ``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. ## Required Usage ``` diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 64% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf index bf5a891d..db145085 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf @@ -1,7 +1,5 @@ data "google_client_config" "current" {} -data "google_client_openid_userinfo" "current" {} - data "http" "ip" { url = "https://ifconfig.me/ip" } \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 80% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf index 77b60299..c812a673 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -4,7 +4,7 @@ locals { AppMachineType = var.AppMachineType AppTag = "ixnetwork" PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 93% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf index c6d6d907..e0e46cf8 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -18,12 +18,6 @@ variable "AppMachineType" { } } -variable "Credentials" { - description = "Path to (or contents of) a service account key file in JSON format" - sensitive = true - type = string -} - variable "ProjectId" { description = "Globally unique identifier for working project" type = string diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars deleted file mode 100644 index 21a327ec..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -# Credentials = "~/gcp/credentials.json" -# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars deleted file mode 100644 index 21a327ec..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -# Credentials = "~/gcp/credentials.json" -# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/README.md b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/README.md deleted file mode 100644 index 29ed28b0..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# IxNetwork-on-GCP-1-App-2-Agents-Add-On - -## Description -This deployment creates resources that will be attached to an existing network topology. - -## Required Variables -``` -terraform.required.auto.tfvars -``` -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 -``` -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -terraform plan -terraform state list -terraform output -``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..dd736295 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,33 @@ +# IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with two virtual private clouds, one having a single public facing subnet and the other having a single private subnet. + +## Required Variables +``` +terraform.required.auto.tfvars +``` +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 +``` +terraform.gcp.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 64% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf index bf5a891d..db145085 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf @@ -1,7 +1,5 @@ data "google_client_config" "current" {} -data "google_client_openid_userinfo" "current" {} - data "http" "ip" { url = "https://ifconfig.me/ip" } \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 80% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf index acccbd94..2a8ffb0a 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -1,5 +1,6 @@ locals { AgentMachineType = var.AgentMachineType + AgentTotalEgressBandwidthTier = var.AgentTotalEgressBandwidthTier Agent1InstanceId = "agent1" Agent2Eth0PrivateIpAddress = "10.0.10.12" Agent2Eth0PublicIpAddressName = "${local.Preamble}-eth0-ip-addr" @@ -10,8 +11,9 @@ locals { AppMachineType = var.AppMachineType AppTag = "ixnetwork" Preamble = replace("${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}-${local.Agent2InstanceId}", "_", "-") + PrivateVpcNetworkMtu = var.PrivateVpcNetworkMtu PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 90% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf index adfa78f3..c082f637 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf @@ -15,7 +15,7 @@ module "App" { } module "Agent1" { - source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.0" + source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.1" Eth0SubnetName = module.Vpc.PublicSubnet.name Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name Eth1SubnetName = module.Vpc.PrivateSubnet.name @@ -23,6 +23,7 @@ module "Agent1" { InstanceId = local.Agent1InstanceId MachineType = local.AgentMachineType RegionName = data.google_client_config.current.region + TotalEgressBandwidthTier = local.AgentTotalEgressBandwidthTier UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag @@ -34,7 +35,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.0" + source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.1" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SubnetName = module.Vpc.PublicSubnet.name Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name @@ -45,6 +46,7 @@ module "Agent2" { InstanceId = local.Agent2InstanceId MachineType = local.AgentMachineType RegionName = data.google_client_config.current.region + TotalEgressBandwidthTier = local.AgentTotalEgressBandwidthTier UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 53% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf index 6551a666..1bb01161 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf @@ -13,6 +13,14 @@ output "Agent1Eth0PublicIpAddress" { } } +output "Agent1Instance" { + value = { + "machine_type" : module.Agent1.Instance.machine_type + "name" : module.Agent1.Instance.name + "total_egress_bandwidth_tier" : module.Agent1.Instance.total_egress_bandwidth_tier + } +} + output "Agent2Eth0PublicIpAddress" { value = { "address" : module.Agent2.Eth0PublicIpAddress.address @@ -20,6 +28,14 @@ output "Agent2Eth0PublicIpAddress" { } } +output "Agent2Instance" { + value = { + "machine_type" : module.Agent2.Instance.machine_type + "name" : module.Agent2.Instance.name + "total_egress_bandwidth_tier" : module.Agent2.Instance.total_egress_bandwidth_tier + } +} + output "AppEth0PublicIpAddress" { value = { "address" : module.App.Eth0PublicIpAddress.address @@ -33,4 +49,18 @@ output "AppImage" { "name" : module.App.Image.name "project" : module.App.Image.project } +} + +output "PrivateVpcNetwork" { + value = { + "mtu" : module.Vpc.PrivateVpcNetwork.mtu + "name" : module.Vpc.PrivateVpcNetwork.name + } +} + +output "PublicVpcNetwork" { + value = { + "mtu" : module.Vpc.PublicVpcNetwork.mtu + "name" : module.Vpc.PublicVpcNetwork.name + } } \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 68% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index ed0f50df..06f818c0 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -1,5 +1,7 @@ -# AgentMachineType = "c2-standard-8" +# AgentMachineType = "c4-standard-8" +# AgentTotalEgressBandwidthTier = "DEFAULT" # AppMachineType = "n1-standard-4" +# PrivateVpcNetworkMtu = 1500 # PublicFirewallRuleSourceIpRanges = [ "1.1.1.1/32" ] # RegionName = "us-central1" # UserEmailTag = "terraform@example.com" diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 63% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf index c6d6d907..9ec4dd2e 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -1,10 +1,26 @@ variable "AgentMachineType" { - default = "c2-standard-8" + default = "c4-standard-8" description = "Designation for set of resources available to Agent VM" type = string validation { - condition = can(regex("c2-standard-16", var.AgentMachineType)) || can(regex("c2-standard-8", var.AgentMachineType)) || can(regex("c2-standard-4", var.AgentMachineType)) - error_message = "AgentMachineType must be one of (c2-standard-16 | c2-standard-8 | c2-standard-4) types." + condition = contains([ "c4-standard-4", "c4-standard-8", "c4-standard-48", "c4-standard-96", "c4-standard-192" ], var.AgentMachineType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} + +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/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf new file mode 100644 index 00000000..8cb2b252 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf @@ -0,0 +1,22 @@ +module "Vpc" { + source = "git::https://github.com/armdupre/terraform-google-module-3-vpcs-1-public-subnet-2-private-subnets?ref=11.0.1" + Private1VpcNetworkMtu = local.Private1VpcNetworkMtu + Private2VpcNetworkMtu = local.Private2VpcNetworkMtu + PublicFirewallRuleSourceIpRanges = local.PublicFirewallRuleSourceIpRanges + RegionName = data.google_client_config.current.region + Tag = local.AppTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag +} + +resource "google_compute_network_peering" "Private1VpcNetworkPeer" { + name = local.Private1VpcNetworkPeerName + network = module.Vpc.Private1VpcNetwork.id + peer_network = module.Vpc.Private2VpcNetwork.id +} + +resource "google_compute_network_peering" "Private2VpcNetworkPeer" { + name = local.Private2VpcNetworkPeerName + network = module.Vpc.Private2VpcNetwork.id + peer_network = module.Vpc.Private1VpcNetwork.id +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars deleted file mode 100644 index 21a327ec..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -# Credentials = "~/gcp/credentials.json" -# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..745f8562 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,33 @@ +# IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with two virtual private clouds, one having a single public facing subnet and the other having a single private subnet. + +## Required Variables +``` +terraform.required.auto.tfvars +``` +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 +``` +terraform.gcp.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 64% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf index bf5a891d..db145085 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf @@ -1,7 +1,5 @@ data "google_client_config" "current" {} -data "google_client_openid_userinfo" "current" {} - data "http" "ip" { url = "https://ifconfig.me/ip" } \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 88% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf index acccbd94..8672de8f 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -11,7 +11,7 @@ locals { AppTag = "ixnetwork" Preamble = replace("${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}-${local.Agent2InstanceId}", "_", "-") PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/provider.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/provider.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 93% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf index c6d6d907..e0e46cf8 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -18,12 +18,6 @@ variable "AppMachineType" { } } -variable "Credentials" { - description = "Path to (or contents of) a service account key file in JSON format" - sensitive = true - type = string -} - variable "ProjectId" { description = "Globally unique identifier for working project" type = string diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/versions.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/versions.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md new file mode 100644 index 00000000..46674387 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md @@ -0,0 +1,33 @@ +# IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets + +## Description +This deployment creates a topology with three virtual private clouds, one having a single public facing subnet and the other two having a single private subnet each. + +## Required Variables +``` +terraform.required.auto.tfvars +``` +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 +``` +terraform.gcp.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf new file mode 100644 index 00000000..db145085 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf @@ -0,0 +1,5 @@ +data "google_client_config" "current" {} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf similarity index 89% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf index c8ba2144..8b4f4e6a 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -13,7 +13,7 @@ locals { Private1VpcNetworkPeerName = "${local.Preamble}-test1-vpc-peer" Private2VpcNetworkPeerName = "${local.Preamble}-test2-vpc-peer" PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf similarity index 98% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf index 5e1572cd..01f649ab 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-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-ixnetwork-app.git?ref=11.0.0" + source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-app.git?ref=11.0.1" Eth0SubnetName = module.Vpc.PublicSubnet.name Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name MachineType = local.AppMachineType diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf similarity index 93% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf index c6d6d907..e0e46cf8 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -18,12 +18,6 @@ variable "AppMachineType" { } } -variable "Credentials" { - description = "Path to (or contents of) a service account key file in JSON format" - sensitive = true - type = string -} - variable "ProjectId" { description = "Globally unique identifier for working project" type = string diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/README.md b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/README.md new file mode 100644 index 00000000..b9165bbc --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/README.md @@ -0,0 +1,33 @@ +# IxNetwork-on-GCP-1-App-2-VTAs-Add-On + +## Description +This deployment creates resources that will be attached to an existing network topology. + +## Required Variables +``` +terraform.required.auto.tfvars +``` +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 +``` +terraform.gcp.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/data.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/data.tf similarity index 88% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/data.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/data.tf index 789be549..e7aeaf4c 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/data.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/data.tf @@ -1,7 +1,5 @@ data "google_client_config" "current" {} -data "google_client_openid_userinfo" "current" {} - data "google_compute_subnetwork" "PrivateSubnet" { name = local.PrivateSubnetName } diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/locals.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/locals.tf similarity index 88% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/locals.tf index 4668d536..8126aba6 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/locals.tf @@ -14,7 +14,7 @@ locals { PrivateVpcNetworkName = var.PrivateVpcNetworkName PublicSubnetName = var.PublicSubnetName PublicVpcNetworkName = var.PublicVpcNetworkName - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/main.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/main.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/main.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/main.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/output.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/output.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/output.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/output.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/provider.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/provider.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars similarity index 86% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/terraform.required.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars index 0a29d830..de368b85 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/terraform.required.auto.tfvars +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars @@ -1,4 +1,3 @@ -# Credentials = "~/gcp/credentials.json" # PrivateSubnetName = "terraform-example-test-01-subnet" # PrivateVpcNetworkName = "terraform-example-test-01-vpc-network" # ProjectId = "example" diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/variables.tf similarity index 94% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/variables.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/variables.tf index e0253d4a..516fda71 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/variables.tf @@ -18,12 +18,6 @@ variable "AppMachineType" { } } -variable "Credentials" { - description = "Path to (or contents of) a service account key file in JSON format" - sensitive = true - type = string -} - variable "PrivateSubnetName" { description = "Name tag associated with the private subnet" type = string diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf b/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/versions.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf rename to google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-VTAs-Add-On/versions.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md new file mode 100644 index 00000000..afdb1458 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md @@ -0,0 +1,33 @@ +# IxNetwork-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets + +## Description +This deployment creates a topology with three virtual private clouds, one having a single public facing subnet and the other two having a single private subnet each. + +## Required Variables +``` +terraform.required.auto.tfvars +``` +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 +``` +terraform.gcp.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf new file mode 100644 index 00000000..db145085 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf @@ -0,0 +1,5 @@ +data "google_client_config" "current" {} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf new file mode 100644 index 00000000..a8c77b00 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -0,0 +1,14 @@ +locals { + AppMachineType = var.AppMachineType + AppTotalEgressBandwidthTier = var.AppTotalEgressBandwidthTier + AppTag = "ixnetwork" + 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 + 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/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf new file mode 100644 index 00000000..35781a5c --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf @@ -0,0 +1,24 @@ +module "App" { + source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-app.git?ref=11.0.0" + Eth0SubnetName = module.Vpc.PublicSubnet.name + Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name + Eth1SubnetName = module.Vpc.Private1Subnet.name + Eth1VpcNetworkName = module.Vpc.Private1VpcNetwork.name + Eth2SubnetName = module.Vpc.Private2Subnet.name + Eth2VpcNetworkName = module.Vpc.Private2VpcNetwork.name + MachineType = local.AppMachineType + RegionName = data.google_client_config.current.region + TotalEgressBandwidthTier = local.AppTotalEgressBandwidthTier + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag + ZoneName = data.google_client_config.current.zone + depends_on = [ + module.Vpc.PublicSubnet, + module.Vpc.PublicVpcNetwork + ] +} + +resource "random_id" "RandomId" { + byte_length = 4 +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 00000000..8c40ac5c --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf @@ -0,0 +1,43 @@ +output "AppEth0PublicIpAddress" { + value = { + "address" : module.App.Eth0PublicIpAddress.address + "address_type" : module.App.Eth0PublicIpAddress.address_type + } +} + +output "AppImage" { + value = { + "family" : module.App.Image.family + "name" : module.App.Image.name + "project" : module.App.Image.project + } +} + +output "AppInstance" { + value = { + "machine_type" : module.App.Instance.machine_type + "name" : module.App.Instance.name + "total_egress_bandwidth_tier" : module.App.Instance.total_egress_bandwidth_tier + } +} + +output "Private1VpcNetwork" { + value = { + "mtu" : module.Vpc.Private1VpcNetwork.mtu + "name" : module.Vpc.Private1VpcNetwork.name + } +} + +output "Private2VpcNetwork" { + value = { + "mtu" : module.Vpc.Private2VpcNetwork.mtu + "name" : module.Vpc.Private2VpcNetwork.name + } +} + +output "PublicVpcNetwork" { + value = { + "mtu" : module.Vpc.PublicVpcNetwork.mtu + "name" : module.Vpc.PublicVpcNetwork.name + } +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf rename to google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars new file mode 100644 index 00000000..55435179 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars @@ -0,0 +1,10 @@ +# AppMachineType = "c4-standard-8" +# AppTotalEgressBandwidthTier = "DEFAULT" +# Private1VpcNetworkMtu = 1500 +# Private2VpcNetworkMtu = 1500 +# PublicFirewallRuleSourceIpRanges = [ "1.1.1.1/32" ] +# RegionName = "us-central1" +# UserEmailTag = "terraform@example.com" +# UserLoginTag = "terraform" +# UserProjectTag = "cloud-ist" +# ZoneName = "us-central1-a" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf new file mode 100644 index 00000000..f644db3e --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -0,0 +1,94 @@ +variable "AppMachineType" { + default = "c4-standard-8" + description = "Designation for set of resources available to App VM" + type = string + validation { + condition = contains([ "c4-standard-8", "c4-standard-48", "c4-standard-96", "c4-standard-192" ], var.AgentMachineType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} + +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/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf rename to google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf new file mode 100644 index 00000000..16f61e55 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-GCP-1-CTA-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf @@ -0,0 +1,22 @@ +module "Vpc" { + source = "git::https://github.com/armdupre/terraform-google-module-3-vpcs-1-public-subnet-2-private-subnets.git?ref=11.0.1" + Private1VpcNetworkMtu = local.Private1VpcNetworkMtu + Private2VpcNetworkMtu = local.Private2VpcNetworkMtu + PublicFirewallRuleSourceIpRanges = local.PublicFirewallRuleSourceIpRanges + RegionName = data.google_client_config.current.region + Tag = local.AppTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag +} + +resource "google_compute_network_peering" "Private1VpcNetworkPeer" { + name = local.Private1VpcNetworkPeerName + network = module.Vpc.Private1VpcNetwork.id + peer_network = module.Vpc.Private2VpcNetwork.id +} + +resource "google_compute_network_peering" "Private2VpcNetworkPeer" { + name = local.Private2VpcNetworkPeerName + network = module.Vpc.Private2VpcNetwork.id + peer_network = module.Vpc.Private1VpcNetwork.id +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf deleted file mode 100644 index bf5a891d..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf +++ /dev/null @@ -1,7 +0,0 @@ -data "google_client_config" "current" {} - -data "google_client_openid_userinfo" "current" {} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars deleted file mode 100644 index 21a327ec..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -# Credentials = "~/gcp/credentials.json" -# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md similarity index 76% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md index 58bb84c4..436303e2 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet +# IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with two virtual private clouds, one having a single public facing subnet and the other having a single private subnet. @@ -12,9 +12,10 @@ Otherwise, Terraform will prompt the user to supply input arguents via cli. ## Optional Variables ``` +terraform.gcp.auto.tfvars terraform.optional.auto.tfvars ``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. ## Required Usage ``` diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..db145085 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,5 @@ +data "google_client_config" "current" {} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 79% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf index a9b3808f..3b799f6c 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -3,7 +3,7 @@ locals { Agent1InstanceId = "agent1" AppTag = "ixnetwork" PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 91% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf index c105e5dc..3791d686 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -8,12 +8,6 @@ variable "AgentMachineType" { } } -variable "Credentials" { - description = "Path to (or contents of) a service account key file in JSON format" - sensitive = true - type = string -} - variable "ProjectId" { description = "Globally unique identifier for working project" type = string diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-VTA-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md deleted file mode 100644 index b36e9806..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet - -## Description -This deployment creates a topology with two virtual private clouds, one having a single public facing subnet and the other having a single private subnet. - -## Required Variables -``` -terraform.required.auto.tfvars -``` -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 -``` -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -terraform plan -terraform state list -terraform output -``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf deleted file mode 100644 index bf5a891d..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf +++ /dev/null @@ -1,7 +0,0 @@ -data "google_client_config" "current" {} - -data "google_client_openid_userinfo" "current" {} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars deleted file mode 100644 index 21a327ec..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -# Credentials = "~/gcp/credentials.json" -# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf deleted file mode 100644 index bf5a891d..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf +++ /dev/null @@ -1,7 +0,0 @@ -data "google_client_config" "current" {} - -data "google_client_openid_userinfo" "current" {} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars deleted file mode 100644 index 21a327ec..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -# Credentials = "~/gcp/credentials.json" -# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/README.md b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/README.md deleted file mode 100644 index 864a8a7c..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# IxVM-on-GCP-2-Agents-Add-On - -## Description -This deployment creates resources that will be attached to an existing network topology. - -## Required Variables -``` -terraform.required.auto.tfvars -``` -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 -``` -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -terraform plan -terraform state list -terraform output -``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md similarity index 76% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md index eb48d812..9dc4523d 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet +# IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with two virtual private clouds, one having a single public facing subnet and the other having a single private subnet. @@ -12,9 +12,10 @@ Otherwise, Terraform will prompt the user to supply input arguents via cli. ## Optional Variables ``` +terraform.gcp.auto.tfvars terraform.optional.auto.tfvars ``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. ## Required Usage ``` diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..db145085 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,5 @@ +data "google_client_config" "current" {} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 80% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf index 99e72707..1c8bab6a 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -1,5 +1,6 @@ locals { AgentMachineType = var.AgentMachineType + AgentTotalEgressBandwidthTier = var.AgentTotalEgressBandwidthTier Agent1InstanceId = "agent1" Agent2Eth0PrivateIpAddress = "10.0.10.12" Agent2Eth0PublicIpAddressName = "${local.Preamble}-eth0-ip-addr" @@ -9,8 +10,9 @@ locals { Agent2InstanceName = "${local.Preamble}-instance" AppTag = "ixnetwork" Preamble = replace("${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}-${local.Agent2InstanceId}", "_", "-") + PrivateVpcNetworkMtu = var.PrivateVpcNetworkMtu PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 87% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf index 0739eaa0..57c79f2d 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.0" + source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.1" Eth0SubnetName = module.Vpc.PublicSubnet.name Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name Eth1SubnetName = module.Vpc.PrivateSubnet.name @@ -7,6 +7,7 @@ module "Agent1" { InstanceId = local.Agent1InstanceId MachineType = local.AgentMachineType RegionName = data.google_client_config.current.region + TotalEgressBandwidthTier = local.AgentTotalEgressBandwidthTier UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag @@ -18,7 +19,7 @@ module "Agent1" { } module "Agent2" { - source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.0" + source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.1" Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress Eth0SubnetName = module.Vpc.PublicSubnet.name Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name @@ -29,6 +30,7 @@ module "Agent2" { InstanceId = local.Agent2InstanceId MachineType = local.AgentMachineType RegionName = data.google_client_config.current.region + TotalEgressBandwidthTier = local.AgentTotalEgressBandwidthTier UserEmailTag = local.UserEmailTag UserLoginTag = local.UserLoginTag UserProjectTag = local.UserProjectTag diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..a121c4a2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,51 @@ +output "AgentImage" { + value = { + "family" : module.Agent1.Image.family + "name" : module.Agent1.Image.name + "project" : module.Agent1.Image.project + } +} + +output "Agent1Eth0PublicIpAddress" { + value = { + "address" : module.Agent1.Eth0PublicIpAddress.address + "address_type" : module.Agent1.Eth0PublicIpAddress.address_type + } +} + +output "Agent1Instance" { + value = { + "machine_type" : module.Agent1.Instance.machine_type + "name" : module.Agent1.Instance.name + "total_egress_bandwidth_tier" : module.Agent1.Instance.total_egress_bandwidth_tier + } +} + +output "Agent2Eth0PublicIpAddress" { + value = { + "address" : module.Agent2.Eth0PublicIpAddress.address + "address_type" : module.Agent2.Eth0PublicIpAddress.address_type + } +} + +output "Agent2Instance" { + value = { + "machine_type" : module.Agent2.Instance.machine_type + "name" : module.Agent2.Instance.name + "total_egress_bandwidth_tier" : module.Agent2.Instance.total_egress_bandwidth_tier + } +} + +output "PrivateVpcNetwork" { + value = { + "mtu" : module.Vpc.PrivateVpcNetwork.mtu + "name" : module.Vpc.PrivateVpcNetwork.name + } +} + +output "PublicVpcNetwork" { + value = { + "mtu" : module.Vpc.PublicVpcNetwork.mtu + "name" : module.Vpc.PublicVpcNetwork.name + } +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/provider.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/provider.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 65% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index 46e4194b..17c73f51 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -1,4 +1,6 @@ -# AgentMachineType = "c2-standard-8" +# AgentMachineType = "c4-standard-8" +# AgentTotalEgressBandwidthTier = "DEFAULT" +# PrivateVpcNetworkMtu = 1500 # PublicFirewallRuleSourceIpRanges = [ "1.1.1.1/32" ] # RegionName = "us-central1" # UserEmailTag = "terraform@example.com" diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..80e49429 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,84 @@ +variable "AgentMachineType" { + default = "c4-standard-8" + description = "Designation for set of resources available to Agent VM" + type = string + validation { + condition = contains([ "c4-standard-4", "c4-standard-8", "c4-standard-48", "c4-standard-96", "c4-standard-192" ], var.AgentMachineType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} + +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/IxVM/IxVM-on-GCP-2-Agents-Add-On/versions.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/versions.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 73% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf index 5d124f89..75fdb55e 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf @@ -1,5 +1,6 @@ module "Vpc" { - source = "git::https://github.com/armdupre/terraform-google-module-2-vpcs-1-public-subnet-1-private-subnet?ref=11.0.0" + source = "git::https://github.com/armdupre/terraform-google-module-2-vpcs-1-public-subnet-1-private-subnet?ref=11.0.1" + PrivateVpcNetworkMtu = local.PrivateVpcNetworkMtu PublicFirewallRuleSourceIpRanges = local.PublicFirewallRuleSourceIpRanges RegionName = data.google_client_config.current.region Tag = local.AppTag diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md similarity index 76% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md index b8a2cf9f..169ebdc7 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-GCP-1-App-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets +# IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets ## Description This deployment creates a topology with three virtual private clouds, one having a single public facing subnet and the other two having a single private subnet each. @@ -12,9 +12,10 @@ Otherwise, Terraform will prompt the user to supply input arguents via cli. ## Optional Variables ``` +terraform.gcp.auto.tfvars terraform.optional.auto.tfvars ``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. ## Required Usage ``` diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf new file mode 100644 index 00000000..db145085 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf @@ -0,0 +1,5 @@ +data "google_client_config" "current" {} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf new file mode 100644 index 00000000..7be70502 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -0,0 +1,21 @@ +locals { + AgentMachineType = var.AgentMachineType + AgentTotalEgressBandwidthTier = var.AgentTotalEgressBandwidthTier + Agent1InstanceId = "agent1" + Agent2Eth0PrivateIpAddress = "10.0.10.12" + Agent2Eth0PublicIpAddressName = "${local.Preamble}-eth0-ip-addr" + Agent2Eth1PrivateIpAddress = "10.0.3.15" + Agent2Eth1PrivateIpAliases = "/28" + Agent2InstanceId = "agent2" + Agent2InstanceName = "${local.Preamble}-instance" + AppTag = "ixnetwork" + Preamble = replace("${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}-${local.Agent2InstanceId}", "_", "-") + 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 + 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/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf new file mode 100644 index 00000000..7971c822 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf @@ -0,0 +1,46 @@ +module "Agent1" { + source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.1" + Eth0SubnetName = module.Vpc.PublicSubnet.name + Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name + Eth1SubnetName = module.Vpc.Private1Subnet.name + Eth1VpcNetworkName = module.Vpc.Private1VpcNetwork.name + InstanceId = local.Agent1InstanceId + MachineType = local.AgentMachineType + RegionName = data.google_client_config.current.region + TotalEgressBandwidthTier = local.AgentTotalEgressBandwidthTier + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag + ZoneName = data.google_client_config.current.zone + depends_on = [ + module.Vpc.PublicSubnet, + module.Vpc.PublicVpcNetwork + ] +} + +module "Agent2" { + source = "git::https://github.com/armdupre/terraform-google-module-ixnetwork-cloud-agent.git?ref=11.0.1" + Eth0PrivateIpAddress = local.Agent2Eth0PrivateIpAddress + Eth0SubnetName = module.Vpc.PublicSubnet.name + Eth0VpcNetworkName = module.Vpc.PublicVpcNetwork.name + Eth1PrivateIpAddress = local.Agent2Eth1PrivateIpAddress + Eth1PrivateIpAliases = local.Agent2Eth1PrivateIpAliases + Eth1SubnetName = module.Vpc.Private2Subnet.name + Eth1VpcNetworkName = module.Vpc.Private2VpcNetwork.name + InstanceId = local.Agent2InstanceId + MachineType = local.AgentMachineType + RegionName = data.google_client_config.current.region + TotalEgressBandwidthTier = local.AgentTotalEgressBandwidthTier + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag + ZoneName = data.google_client_config.current.zone + depends_on = [ + module.Vpc.PublicSubnet, + module.Vpc.PublicVpcNetwork + ] +} + +resource "random_id" "RandomId" { + byte_length = 4 +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 00000000..6068b461 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf @@ -0,0 +1,58 @@ +output "AgentImage" { + value = { + "family" : module.Agent1.Image.family + "name" : module.Agent1.Image.name + "project" : module.Agent1.Image.project + } +} + +output "Agent1Eth0PublicIpAddress" { + value = { + "address" : module.Agent1.Eth0PublicIpAddress.address + "address_type" : module.Agent1.Eth0PublicIpAddress.address_type + } +} + +output "Agent1Instance" { + value = { + "machine_type" : module.Agent1.Instance.machine_type + "name" : module.Agent1.Instance.name + "total_egress_bandwidth_tier" : module.Agent1.Instance.total_egress_bandwidth_tier + } +} + +output "Agent2Eth0PublicIpAddress" { + value = { + "address" : module.Agent2.Eth0PublicIpAddress.address + "address_type" : module.Agent2.Eth0PublicIpAddress.address_type + } +} + +output "Agent2Instance" { + value = { + "machine_type" : module.Agent2.Instance.machine_type + "name" : module.Agent2.Instance.name + "total_egress_bandwidth_tier" : module.Agent2.Instance.total_egress_bandwidth_tier + } +} + +output "Private1VpcNetwork" { + value = { + "mtu" : module.Vpc.Private1VpcNetwork.mtu + "name" : module.Vpc.Private1VpcNetwork.name + } +} + +output "Private2VpcNetwork" { + value = { + "mtu" : module.Vpc.Private2VpcNetwork.mtu + "name" : module.Vpc.Private2VpcNetwork.name + } +} + +output "PublicVpcNetwork" { + value = { + "mtu" : module.Vpc.PublicVpcNetwork.mtu + "name" : module.Vpc.PublicVpcNetwork.name + } +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars new file mode 100644 index 00000000..9561eb59 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars @@ -0,0 +1,10 @@ +# AgentMachineType = "c4-standard-8" +# AgentTotalEgressBandwidthTier = "DEFAULT" +# Private1VpcNetworkMtu = 1500 +# Private2VpcNetworkMtu = 1500 +# PublicFirewallRuleSourceIpRanges = [ "1.1.1.1/32" ] +# RegionName = "us-central1" +# UserEmailTag = "terraform@example.com" +# UserLoginTag = "terraform" +# UserProjectTag = "cloud-ist" +# ZoneName = "us-central1-a" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf new file mode 100644 index 00000000..a64f509e --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -0,0 +1,94 @@ +variable "AgentMachineType" { + default = "c4-standard-8" + description = "Designation for set of resources available to Agent VM" + type = string + validation { + condition = contains([ "c4-standard-4", "c4-standard-8", "c4-standard-48", "c4-standard-96", "c4-standard-192" ], var.AgentMachineType) + error_message = <= 14 + error_message = "UserEmailTag minimum length must be >= 14." + } +} + +variable "UserLoginTag" { + default = null + description = "Login ID tag of user creating the deployment" + type = string + validation { + condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 + error_message = "UserLoginTag minimum length must be >= 4." + } +} + +variable "UserProjectTag" { + default = null + description = "Project tag of user creating the deployment" + type = string +} + +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/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf new file mode 100644 index 00000000..8cb2b252 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-CTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf @@ -0,0 +1,22 @@ +module "Vpc" { + source = "git::https://github.com/armdupre/terraform-google-module-3-vpcs-1-public-subnet-2-private-subnets?ref=11.0.1" + Private1VpcNetworkMtu = local.Private1VpcNetworkMtu + Private2VpcNetworkMtu = local.Private2VpcNetworkMtu + PublicFirewallRuleSourceIpRanges = local.PublicFirewallRuleSourceIpRanges + RegionName = data.google_client_config.current.region + Tag = local.AppTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag +} + +resource "google_compute_network_peering" "Private1VpcNetworkPeer" { + name = local.Private1VpcNetworkPeerName + network = module.Vpc.Private1VpcNetwork.id + peer_network = module.Vpc.Private2VpcNetwork.id +} + +resource "google_compute_network_peering" "Private2VpcNetworkPeer" { + name = local.Private2VpcNetworkPeerName + network = module.Vpc.Private2VpcNetwork.id + peer_network = module.Vpc.Private1VpcNetwork.id +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md deleted file mode 100644 index be2253e8..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet - -## Description -This deployment creates a topology with two virtual private clouds, one having a single public facing subnet and the other having a single private subnet. - -## Required Variables -``` -terraform.required.auto.tfvars -``` -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 -``` -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -terraform plan -terraform state list -terraform output -``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf deleted file mode 100644 index bf5a891d..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf +++ /dev/null @@ -1,7 +0,0 @@ -data "google_client_config" "current" {} - -data "google_client_openid_userinfo" "current" {} - -data "http" "ip" { - url = "https://ifconfig.me/ip" -} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index b09f373a..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,21 +0,0 @@ -output "AgentImage" { - value = { - "family" : module.Agent1.Image.family - "name" : module.Agent1.Image.name - "project" : module.Agent1.Image.project - } -} - -output "Agent1Eth0PublicIpAddress" { - value = { - "address" : module.Agent1.Eth0PublicIpAddress.address - "address_type" : module.Agent1.Eth0PublicIpAddress.address_type - } -} - -output "Agent2Eth0PublicIpAddress" { - value = { - "address" : module.Agent2.Eth0PublicIpAddress.address - "address_type" : module.Agent2.Eth0PublicIpAddress.address_type - } -} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars deleted file mode 100644 index 21a327ec..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -# Credentials = "~/gcp/credentials.json" -# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index c105e5dc..00000000 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Cloud-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf +++ /dev/null @@ -1,64 +0,0 @@ -variable "AgentMachineType" { - default = "c2-standard-8" - description = "Designation for set of resources available to Agent VM" - type = string - validation { - condition = can(regex("c2-standard-16", var.AgentMachineType)) || can(regex("c2-standard-8", var.AgentMachineType)) || can(regex("c2-standard-4", var.AgentMachineType)) - error_message = "AgentMachineType must be one of (c2-standard-16 | c2-standard-8 | c2-standard-4) types." - } -} - -variable "Credentials" { - description = "Path to (or contents of) a service account key file in JSON format" - sensitive = true - type = string -} - -variable "ProjectId" { - description = "Globally unique identifier for working project" - type = string -} - -variable "PublicFirewallRuleSourceIpRanges" { - default = null - description = "List of IP Addresses /32 or IP CIDR ranges connecting inbound to App" - type = list(string) -} - -variable "RegionName" { - default = "us-central1" - description = "Geographical location where resources can be hosted" - type = string -} - -variable "UserEmailTag" { - default = null - description = "Email address tag of user creating the deployment" - type = string - validation { - condition = var.UserEmailTag == null ? true : length(var.UserEmailTag) >= 14 - error_message = "UserEmailTag minimum length must be >= 14." - } -} - -variable "UserLoginTag" { - default = null - description = "Login ID tag of user creating the deployment" - type = string - validation { - condition = var.UserLoginTag == null ? true : length(var.UserLoginTag) >= 4 - error_message = "UserLoginTag minimum length must be >= 4." - } -} - -variable "UserProjectTag" { - default = null - description = "Project tag of user creating the deployment" - type = string -} - -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/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md similarity index 76% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md index 4aa43f8f..09b2278b 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-GCP-1-App-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet +# IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with two virtual private clouds, one having a single public facing subnet and the other having a single private subnet. @@ -12,9 +12,10 @@ Otherwise, Terraform will prompt the user to supply input arguents via cli. ## Optional Variables ``` +terraform.gcp.auto.tfvars terraform.optional.auto.tfvars ``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. ## Required Usage ``` diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..db145085 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,5 @@ +data "google_client_config" "current" {} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 88% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf index 99e72707..a49bd195 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -10,7 +10,7 @@ locals { AppTag = "ixnetwork" Preamble = replace("${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}-${local.Agent2InstanceId}", "_", "-") PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/output.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf new file mode 100644 index 00000000..a4ba69a0 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/provider.tf @@ -0,0 +1,6 @@ +provider "google" { + credentials = var.Credentials + project = var.ProjectId + region = var.RegionName + zone = var.ZoneName +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 91% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf index c105e5dc..3791d686 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -8,12 +8,6 @@ variable "AgentMachineType" { } } -variable "Credentials" { - description = "Path to (or contents of) a service account key file in JSON format" - sensitive = true - type = string -} - variable "ProjectId" { description = "Globally unique identifier for working project" type = string diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 00000000..da7fd134 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + google = { + source = "hashicorp/google" + version = ">= 6.12.0" + } + } +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-1-Agent-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-2-VPCs-1-Public-Subnet-1-Private-Subnet/vpc.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md similarity index 76% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md index 319f3b76..ac7776f2 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,4 +1,4 @@ -# IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets +# IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets ## Description This deployment creates a topology with three virtual private clouds, one having a single public facing subnet and the other two having a single private subnet each. @@ -12,9 +12,10 @@ Otherwise, Terraform will prompt the user to supply input arguents via cli. ## Optional Variables ``` +terraform.gcp.auto.tfvars terraform.optional.auto.tfvars ``` -You **MAY** uncomment one or more lines as needed in this file and replace values to match your particular environment. +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. ## Required Usage ``` diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf new file mode 100644 index 00000000..db145085 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/data.tf @@ -0,0 +1,5 @@ +data "google_client_config" "current" {} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf similarity index 89% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf index cc055a02..7637dcd1 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -12,7 +12,7 @@ locals { Private1VpcNetworkPeerName = "${local.Preamble}-test1-vpc-peer" Private2VpcNetworkPeerName = "${local.Preamble}-test2-vpc-peer" PublicFirewallRuleSourceIpRanges = var.PublicFirewallRuleSourceIpRanges == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicFirewallRuleSourceIpRanges - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/main.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/output.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf new file mode 100644 index 00000000..a4ba69a0 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/provider.tf @@ -0,0 +1,6 @@ +provider "google" { + credentials = var.Credentials + project = var.ProjectId + region = var.RegionName + zone = var.ZoneName +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars new file mode 100644 index 00000000..50df97d2 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars @@ -0,0 +1 @@ +# ProjectId = "example" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf similarity index 91% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf index c105e5dc..3791d686 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/variables.tf @@ -8,12 +8,6 @@ variable "AgentMachineType" { } } -variable "Credentials" { - description = "Path to (or contents of) a service account key file in JSON format" - sensitive = true - type = string -} - variable "ProjectId" { description = "Globally unique identifier for working project" type = string diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf new file mode 100644 index 00000000..da7fd134 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + google = { + source = "hashicorp/google" + version = ">= 6.12.0" + } + } +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-3-VPCs-1-Public-Subnet-2-Private-Subnets/vpc.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/README.md b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/README.md new file mode 100644 index 00000000..308a8132 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/README.md @@ -0,0 +1,33 @@ +# IxVM-on-GCP-2-VTAs-Add-On + +## Description +This deployment creates resources that will be attached to an existing network topology. + +## Required Variables +``` +terraform.required.auto.tfvars +``` +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 +``` +terraform.gcp.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +terraform plan +terraform state list +terraform output +``` \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/data.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/data.tf similarity index 88% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/data.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/data.tf index 789be549..e7aeaf4c 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/data.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/data.tf @@ -1,7 +1,5 @@ data "google_client_config" "current" {} -data "google_client_openid_userinfo" "current" {} - data "google_compute_subnetwork" "PrivateSubnet" { name = local.PrivateSubnetName } diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/gcp.variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/gcp.variables.tf new file mode 100644 index 00000000..64ea4ba1 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/gcp.variables.tf @@ -0,0 +1,6 @@ +variable "Credentials" { + default = null + description = "Path to (or contents of) a service account key file in JSON format" + sensitive = true + type = string +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/locals.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/locals.tf similarity index 88% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/locals.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/locals.tf index eca5999b..07bf4756 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/locals.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/locals.tf @@ -13,7 +13,7 @@ locals { PrivateVpcNetworkName = var.PrivateVpcNetworkName PublicSubnetName = var.PublicSubnetName PublicVpcNetworkName = var.PublicVpcNetworkName - UserEmailTag = var.UserEmailTag == null ? data.google_client_openid_userinfo.current.email : var.UserEmailTag + 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/IxVM/IxVM-on-GCP-2-Agents-Add-On/main.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/main.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/main.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/main.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/output.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/output.tf similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/output.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/output.tf diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/provider.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/provider.tf new file mode 100644 index 00000000..a4ba69a0 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/provider.tf @@ -0,0 +1,6 @@ +provider "google" { + credentials = var.Credentials + project = var.ProjectId + region = var.RegionName + zone = var.ZoneName +} \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/terraform.gcp.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/terraform.gcp.auto.tfvars new file mode 100644 index 00000000..4f94189d --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/terraform.gcp.auto.tfvars @@ -0,0 +1 @@ +# Credentials = "~/gcp/credentials.json" \ No newline at end of file diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/terraform.optional.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/terraform.optional.auto.tfvars similarity index 100% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/terraform.optional.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/terraform.optional.auto.tfvars diff --git a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/terraform.required.auto.tfvars b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/terraform.required.auto.tfvars similarity index 86% rename from google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/terraform.required.auto.tfvars rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/terraform.required.auto.tfvars index 0a29d830..de368b85 100644 --- a/google-cloud-platform/Deployment/Terraform/IxNetwork/IxNetwork-on-GCP-1-App-2-Agents-Add-On/terraform.required.auto.tfvars +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/terraform.required.auto.tfvars @@ -1,4 +1,3 @@ -# Credentials = "~/gcp/credentials.json" # PrivateSubnetName = "terraform-example-test-01-subnet" # PrivateVpcNetworkName = "terraform-example-test-01-vpc-network" # ProjectId = "example" diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/variables.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/variables.tf similarity index 93% rename from google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/variables.tf rename to google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/variables.tf index f4acf992..974b1f66 100644 --- a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-Agents-Add-On/variables.tf +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/variables.tf @@ -8,12 +8,6 @@ variable "AgentMachineType" { } } -variable "Credentials" { - description = "Path to (or contents of) a service account key file in JSON format" - sensitive = true - type = string -} - variable "PrivateSubnetName" { description = "Name tag associated with the private subnet" type = string diff --git a/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/versions.tf b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/versions.tf new file mode 100644 index 00000000..da7fd134 --- /dev/null +++ b/google-cloud-platform/Deployment/Terraform/IxVM/IxVM-on-GCP-2-VTAs-Add-On/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + google = { + source = "hashicorp/google" + version = ">= 6.12.0" + } + } +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md similarity index 93% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md index dcf32c37..73eecfd1 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 84% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index 4d197abb..44a6c1e5 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -5,19 +5,14 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicRdpSecurityRuleName = "${local.Preamble}-rdp-rule" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 60% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf index f61deca6..75365362 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -1,21 +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 "Agent2Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -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 } } diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md similarity index 92% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md index e87eaef0..35dfebf6 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 86% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index cbf0650d..5902c9b2 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -8,19 +8,14 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicRdpSecurityRuleName = "${local.Preamble}-rdp-rule" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..81f61de9 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,62 @@ +output "Agent1" { + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "Agent2" { + value = { + "admin_username" : module.Agent2.Instance.admin_username + "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size + } +} + +output "App" { + value = { + "admin_username" : module.App.Instance.admin_username + "fqdn" : module.App.Eth0PublicIpAddress.fqdn + "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 + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md similarity index 91% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md index 8ef80546..ad6a72e9 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets +# IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and two private subnets. diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf similarity index 86% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf index 3e8f6d10..270fe0f2 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -8,19 +8,14 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicRdpSecurityRuleName = "${local.Preamble}-rdp-rule" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 00000000..b3931c15 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf @@ -0,0 +1,63 @@ +output "Agent1" { + description = "Instance resource associated with the virtual machine" + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "Agent2" { + value = { + "admin_username" : module.Agent2.Instance.admin_username + "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size + } +} + +output "App" { + value = { + "admin_username" : module.App.Instance.admin_username + "fqdn" : module.App.Eth0PublicIpAddress.fqdn + "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 + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.required.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/README.md similarity index 95% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/README.md index 28b81a49..55f503d8 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-Azure-1-App-2-Agents-Add-On +# IxNetwork-on-Azure-1-App-2-VTAs-Add-On ## Description This deployment creates resources that will be attached to an existing network topology. diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/locals.tf similarity index 85% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/locals.tf index 2ed61d81..756fc4a1 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/locals.tf @@ -8,20 +8,15 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetName = var.PrivateSubnetName PublicRdpSecurityRuleName = "${local.Preamble}-rdp-rule" PublicSubnetName = var.PublicSubnetName ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/output.tf similarity index 52% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/output.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/output.tf index ff1e6670..e3ad7452 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/output.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/output.tf @@ -1,21 +1,33 @@ -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 "Agent2Eth0PublicIpAddress" { +output "Agent2" { value = { + "admin_username" : module.Agent2.Instance.admin_username "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.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 } } diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/terraform.required.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/terraform.required.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-Add-On/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-Azure-1-App-2-VTAs-Add-On/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md similarity index 91% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md index 9e58bd45..c587d8f2 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 84% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index 4d197abb..44a6c1e5 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -5,19 +5,14 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicRdpSecurityRuleName = "${local.Preamble}-rdp-rule" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 60% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf index f61deca6..75365362 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -1,21 +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 "Agent2Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -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 } } diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..de8c6dc7 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,34 @@ +# IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. + +## Required Variables +``` +terraform.required.auto.tfvars +``` +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 +``` +terraform.azure.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +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/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 86% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index cbf0650d..5902c9b2 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -8,19 +8,14 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicRdpSecurityRuleName = "${local.Preamble}-rdp-rule" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..81f61de9 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,62 @@ +output "Agent1" { + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "Agent2" { + value = { + "admin_username" : module.Agent2.Instance.admin_username + "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size + } +} + +output "App" { + value = { + "admin_username" : module.App.Instance.admin_username + "fqdn" : module.App.Eth0PublicIpAddress.fqdn + "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 + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.required.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-FullDeployment/IxNetwork-on-AzureGovCloud-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md similarity index 90% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md index afcd4a40..3a889ae7 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 82% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index 318e37e4..e28a50ce 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -2,18 +2,13 @@ locals { AgentVmSize = var.AgentVmSize Agent1InstanceId = "agent1" AppTag = "ixnetwork" - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 73% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf index 4779c7cb..34d90258 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -1,14 +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 - } -} - -output "AppEth0PublicIpAddress" { - value = { - "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.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 } } diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md similarity index 90% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md index 56d0357b..c4c11247 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 85% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index 7c1977b9..638a52d6 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -5,18 +5,13 @@ locals { Agent2Eth1IpAddresses = [ "10.0.2.22", "10.0.2.23", "10.0.2.24", "10.0.2.25", "10.0.2.26", "10.0.2.27", "10.0.2.28", "10.0.2.29", "10.0.2.30", "10.0.2.31" ] Agent2InstanceId = "agent2" AppTag = "ixnetwork" - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 59% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf index f61deca6..e4e86c5e 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -1,21 +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 "Agent2Eth0PublicIpAddress" { +output "Agent2" { value = { + "admin_username" : module.Agent2.Instance.admin_username "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "AppEth0PublicIpAddress" { - value = { - "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.Eth0PublicIpAddress.ip_address + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size } } diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md similarity index 90% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md index eea7680c..b6129262 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 85% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index 7c1977b9..638a52d6 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -5,18 +5,13 @@ locals { Agent2Eth1IpAddresses = [ "10.0.2.22", "10.0.2.23", "10.0.2.24", "10.0.2.25", "10.0.2.26", "10.0.2.27", "10.0.2.28", "10.0.2.29", "10.0.2.30", "10.0.2.31" ] Agent2InstanceId = "agent2" AppTag = "ixnetwork" - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 59% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf index f61deca6..e4e86c5e 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -1,21 +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 "Agent2Eth0PublicIpAddress" { +output "Agent2" { value = { + "admin_username" : module.Agent2.Instance.admin_username "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "AppEth0PublicIpAddress" { - value = { - "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.Eth0PublicIpAddress.ip_address + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size } } diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md similarity index 90% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md index 2a74b204..29bdd39f 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,4 +1,4 @@ -# IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets +# IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and two private subnets. diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf similarity index 85% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf index dc26dab6..5690c6a0 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -5,18 +5,13 @@ locals { Agent2Eth1IpAddresses = [ "10.0.3.12", "10.0.3.13", "10.0.3.14", "10.0.3.15", "10.0.3.16", "10.0.3.17", "10.0.3.18", "10.0.3.19", "10.0.3.20", "10.0.3.21" ] Agent2InstanceId = "agent2" AppTag = "ixnetwork" - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 00000000..e4e86c5e --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf @@ -0,0 +1,51 @@ +output "Agent1" { + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "Agent2" { + value = { + "admin_username" : module.Agent2.Instance.admin_username + "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/README.md similarity index 96% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/README.md index b4d8daef..cac965e3 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/README.md @@ -1,4 +1,4 @@ -# IxVM-on-Azure-2-Agents-Add-On +# IxNetwork-on-Azure-2-VTAs-Add-On ## Description This deployment creates resources that will be attached to an existing network topology. diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/locals.tf similarity index 83% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/locals.tf index 99412f70..4e78792e 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/locals.tf @@ -5,19 +5,14 @@ locals { Agent2Eth1IpAddresses = [ "10.0.2.22", "10.0.2.23", "10.0.2.24", "10.0.2.25", "10.0.2.26", "10.0.2.27", "10.0.2.28", "10.0.2.29", "10.0.2.30", "10.0.2.31" ] Agent2InstanceId = "agent2" AppTag = "ixnetwork" - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetName = var.PrivateSubnetName PublicSubnetName = var.PublicSubnetName ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/output.tf similarity index 59% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/output.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/output.tf index ff1e6670..313a7ae4 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/output.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/output.tf @@ -1,21 +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 "Agent2Eth0PublicIpAddress" { +output "Agent2" { value = { + "admin_username" : module.Agent2.Instance.admin_username "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "AppEth0PublicIpAddress" { - value = { - "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.Eth0PublicIpAddress.ip_address + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size } } diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/terraform.required.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/terraform.required.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/terraform.required.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/terraform.required.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-Azure-2-VTAs-Add-On/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..a99c197e --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,27 @@ +# IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. + +## Optional Variables +``` +terraform.azure.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +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/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 82% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index 318e37e4..e28a50ce 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -2,18 +2,13 @@ locals { AgentVmSize = var.AgentVmSize Agent1InstanceId = "agent1" AppTag = "ixnetwork" - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 73% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf index 4779c7cb..34d90258 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -1,14 +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 - } -} - -output "AppEth0PublicIpAddress" { - value = { - "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.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 } } diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md similarity index 93% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md index a9659347..45dff1d7 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetwork-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet +# IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 85% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index 7c1977b9..638a52d6 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -5,18 +5,13 @@ locals { Agent2Eth1IpAddresses = [ "10.0.2.22", "10.0.2.23", "10.0.2.24", "10.0.2.25", "10.0.2.26", "10.0.2.27", "10.0.2.28", "10.0.2.29", "10.0.2.30", "10.0.2.31" ] Agent2InstanceId = "agent2" AppTag = "ixnetwork" - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..e4e86c5e --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,51 @@ +output "Agent1" { + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "Agent2" { + value = { + "admin_username" : module.Agent2.Instance.admin_username + "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetwork-TestApplianceOnly/IxNetwork-on-AzureGovCloud-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md deleted file mode 100644 index d59274dd..00000000 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# IxNetwork-on-AzureGovCloud-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet - -## Description -This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. - -## Required Variables -``` -terraform.required.auto.tfvars -``` -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 -``` -terraform.azure.auto.tfvars -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -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/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md similarity index 91% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md index b59b04cc..f9250653 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet +# IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 83% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index 88a57f0a..76d6e211 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -1,21 +1,17 @@ locals { AgentVmSize = var.AgentVmSize Agent1InstanceId = "agent1" + Agent1Eth2IpAddresses = [ "10.0.2.22", "10.0.2.23", "10.0.2.24", "10.0.2.25", "10.0.2.26", "10.0.2.27", "10.0.2.28", "10.0.2.29", "10.0.2.30", "10.0.2.31" ] AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf new file mode 100644 index 00000000..26cc3e0a --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf @@ -0,0 +1,46 @@ +module "App" { + source = "git::https://github.com/armdupre/terraform-azurerm-module-ixnetwork-web-app.git?ref=11.0.0" + AdminUserName = local.AppAdminUserName + Eth0SubnetId = module.Vnet.PublicSubnet.id + ResourceGroupLocation = azurerm_resource_group.ResourceGroup.location + ResourceGroupName = azurerm_resource_group.ResourceGroup.name + SshKeyName = azurerm_ssh_public_key.SshKey.name + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag + VmSize = local.AppVmSize + depends_on = [ + azurerm_ssh_public_key.SshKey, + module.Vnet + ] +} + +module "Agent1" { + source = "git::https://github.com/armdupre/terraform-azurerm-module-ixnetwork-cloud-agent.git?ref=11.0.1.spoke" + Eth0SubnetId = module.Vnet.PublicSubnet.id + Eth1SubnetId = module.Vnet.PrivateSubnet.id + Eth2IpAddresses = local.Agent1Eth2IpAddresses + Eth2SubnetId = module.Vnet.PrivateSubnet.id + InstanceId = local.Agent1InstanceId + ResourceGroupLocation = azurerm_resource_group.ResourceGroup.location + ResourceGroupName = azurerm_resource_group.ResourceGroup.name + SshKeyName = azurerm_ssh_public_key.SshKey.name + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag + VmSize = local.AgentVmSize + depends_on = [ + azurerm_ssh_public_key.SshKey, + module.App, + module.Vnet + ] +} + +resource "azurerm_resource_group" "ResourceGroup" { + name = local.ResourceGroupName + location = local.ResourceGroupLocation +} + +resource "random_id" "RandomId" { + byte_length = 4 +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf similarity index 60% rename from microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf index 4779c7cb..75365362 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetwork/IxNetwork-on-AzureGovCloud-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-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 } } diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 00000000..1b191a46 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf @@ -0,0 +1,60 @@ +variable "AgentVmSize" { + default = "Standard_F8s_v2" + description = "Category, series and instance specifications associated with the Agent VM" + type = string +} + +variable "AppAdminUserName" { + default = "azure" + description = "Id of the App VM administrator account" + type = string +} + +variable "AppVmSize" { + default = "Standard_F4s_v2" + description = "Category, series and instance specifications associated with the App VM" + type = string + validation { + condition = contains([ "Standard_F4s_v2", "Standard_F8s_v2" ], var.AppVmSize) + error_message = < SshKey.pem +``` \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf new file mode 100644 index 00000000..2e2436f4 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -0,0 +1,17 @@ +locals { + AgentVmSize = var.AgentVmSize + Agent1InstanceId = "agent1" + AppAdminUserName = var.AppAdminUserName + AppTag = "ixnetwork" + AppVmSize = var.AppVmSize + Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" + PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes + ResourceGroupLocation = var.ResourceGroupLocation + ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName + SshKeyAlgorithm = "RSA" + SshKeyName = "${local.Preamble}-ssh-key" + SshKeyRsaBits = "4096" + UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag + UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag + UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..75365362 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,51 @@ +output "Agent1" { + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "App" { + value = { + "admin_username" : module.App.Instance.admin_username + "fqdn" : module.App.Eth0PublicIpAddress.fqdn + "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 + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars new file mode 100644 index 00000000..9c46f7cc --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars @@ -0,0 +1,9 @@ +# AgentVmSize = "Standard_F8s_v2" +# AppAdminUserName = "azure" +# AppVmSize = "Standard_F4s_v2" +# PublicSecurityRuleSourceIpPrefixes = [ "1.1.1.1/32" ] +# ResourceGroupLocation = "East US" +# ResourceGroupName = "azure-ixnetwork-1-app-1-agent" +# UserEmailTag = "terraform@example.com" +# UserLoginTag = "terraform" +# UserProjectTag = "cloud-ist" \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-1-VTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..82503323 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,27 @@ +# IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. + +## Optional Variables +``` +terraform.azure.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +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/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 86% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index fc2d7b58..fc55ef0a 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -7,18 +7,13 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..81f61de9 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,62 @@ +output "Agent1" { + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "Agent2" { + value = { + "admin_username" : module.Agent2.Instance.admin_username + "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size + } +} + +output "App" { + value = { + "admin_username" : module.App.Instance.admin_username + "fqdn" : module.App.Eth0PublicIpAddress.fqdn + "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 + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxVM/IxVM-on-Azure-2-Agents-Add-On/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-CTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md new file mode 100644 index 00000000..0e92cdb1 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -0,0 +1,27 @@ +# IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet + +## Description +This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. + +## Optional Variables +``` +terraform.azure.auto.tfvars +terraform.optional.auto.tfvars +``` +You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. + +## Required Usage +``` +terraform init +terraform apply -auto-approve +terraform destroy -auto-approve +``` + +## Optional Usage +``` +terraform validate +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/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 86% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index fc2d7b58..fc55ef0a 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -7,18 +7,13 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..81f61de9 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,62 @@ +output "Agent1" { + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "Agent2" { + value = { + "admin_username" : module.Agent2.Instance.admin_username + "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size + } +} + +output "App" { + value = { + "admin_username" : module.App.Instance.admin_username + "fqdn" : module.App.Eth0PublicIpAddress.fqdn + "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 + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md similarity index 88% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md index 145eb85b..2112ded5 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,4 +1,4 @@ -# IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets +# IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and two private subnets. diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf similarity index 86% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf index 94650011..426136b9 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/locals.tf @@ -7,18 +7,13 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 00000000..b3931c15 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf @@ -0,0 +1,63 @@ +output "Agent1" { + description = "Instance resource associated with the virtual machine" + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "Agent2" { + value = { + "admin_username" : module.Agent2.Instance.admin_username + "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size + } +} + +output "App" { + value = { + "admin_username" : module.App.Instance.admin_username + "fqdn" : module.App.Eth0PublicIpAddress.fqdn + "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 + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-1-Vnet-1-Public-Subnet-2-Private-Subnets/vnet.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/README.md b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/README.md similarity index 94% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/README.md rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/README.md index b5eeb0e0..c49c4110 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/README.md @@ -1,4 +1,4 @@ -# IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On +# IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On ## Description This deployment creates resources that will be attached to an existing network topology. diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/azure.variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/azure.variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/data.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/data.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/data.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/data.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/locals.tf similarity index 84% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/locals.tf index 67fffc31..9d953988 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/locals.tf @@ -7,19 +7,14 @@ locals { AppAdminUserName = var.AppAdminUserName AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PrivateSubnetName = var.PrivateSubnetName PublicSubnetName = var.PublicSubnetName ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/main.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/output.tf new file mode 100644 index 00000000..e3ad7452 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/output.tf @@ -0,0 +1,62 @@ +output "Agent1" { + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "Agent2" { + value = { + "admin_username" : module.Agent2.Instance.admin_username + "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn + "name" : module.Agent2.Instance.name + "private_ip_address" : module.Agent2.Instance.private_ip_address + "public_ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address + "size" : module.Agent2.Instance.size + } +} + +output "App" { + value = { + "admin_username" : module.App.Instance.admin_username + "fqdn" : module.App.Eth0PublicIpAddress.fqdn + "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 + } +} + +output "ResourceGroup" { + value = { + "location" : data.azurerm_resource_group.ResourceGroup.location + "name" : data.azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/provider.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/provider.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/ssh.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/ssh.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/ssh.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/terraform.azure.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/terraform.azure.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/terraform.required.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/terraform.required.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-Add-On/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/versions.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-App-2-VTAs-Add-On/versions.tf diff --git a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md similarity index 89% rename from microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md index a236a550..e4e7873e 100644 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet +# IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet ## Description This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf new file mode 100644 index 00000000..cb626a14 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.locals.tf @@ -0,0 +1,7 @@ +locals { + ClientId = var.ClientId + ClientSecret = var.ClientSecret + ResourceProviderRegistrations = var.ResourceProviderRegistrations + SubscriptionId = var.SubscriptionId + TenantId = var.TenantId +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf new file mode 100644 index 00000000..bc5e60e9 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/azure.variables.tf @@ -0,0 +1,33 @@ +variable "ClientId" { + default = null + description = "Id of an application created in Azure Active Directory" + sensitive = true + type = string +} + +variable "ClientSecret" { + default = null + description = "Authentication value of an application created in Azure Active Directory" + sensitive = true + type = string +} + +variable "ResourceProviderRegistrations" { + default = "core" + description = "Indicates whether or not to ignore registration of Azure Resource Providers due to insuffiencient permissions" + type = string +} + +variable "SubscriptionId" { + default = null + description = "Id of subscription and underlying services used by the deployment" + sensitive = true + type = string +} + +variable "TenantId" { + default = null + description = "Id of an Azure Active Directory instance where one subscription may have multiple tenants" + sensitive = true + type = string +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 00000000..96abdd8c --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/data.tf @@ -0,0 +1,9 @@ +data "azurerm_client_config" "current" { } + +data "azurerm_subscription" "current" {} + +data "azurerm_subscriptions" "available" {} + +data "http" "ip" { + url = "https://ifconfig.me/ip" +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 84% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf index 873e48fa..5199fce5 100644 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/locals.tf @@ -3,18 +3,13 @@ locals { AppEth2IpAddresses = [ "10.0.2.22", "10.0.2.23", "10.0.2.24", "10.0.2.25", "10.0.2.26", "10.0.2.27", "10.0.2.28", "10.0.2.29", "10.0.2.30", "10.0.2.31" ] AppTag = "ixnetwork" AppVmSize = var.AppVmSize - ClientId = var.ClientId - ClientSecret = var.ClientSecret Preamble = "${local.UserLoginTag}-${local.UserProjectTag}-${local.AppTag}" PublicSecurityRuleSourceIpPrefixes = var.PublicSecurityRuleSourceIpPrefixes == null ? [ "${data.http.ip.response_body}/32" ] : var.PublicSecurityRuleSourceIpPrefixes ResourceGroupLocation = var.ResourceGroupLocation ResourceGroupName = var.ResourceGroupName == null ? "${local.Preamble}-resource-group" : var.ResourceGroupName - ResourceProviderRegistrations = var.ResourceProviderRegistrations SshKeyAlgorithm = "RSA" SshKeyName = "${local.Preamble}-ssh-key" SshKeyRsaBits = "4096" - SubscriptionId = var.SubscriptionId - TenantId = var.TenantId UserEmailTag = var.UserEmailTag == null ? data.azurerm_client_config.current.client_id : var.UserEmailTag UserLoginTag = var.UserLoginTag == null ? "terraform" : var.UserLoginTag UserProjectTag = var.UserProjectTag == null ? random_id.RandomId.id : var.UserProjectTag diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/main.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 00000000..75365362 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf @@ -0,0 +1,51 @@ +output "Agent1" { + value = { + "admin_username" : module.Agent1.Instance.admin_username + "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn + "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 "App" { + value = { + "admin_username" : module.App.Instance.admin_username + "fqdn" : module.App.Eth0PublicIpAddress.fqdn + "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 + } +} + +output "ResourceGroup" { + value = { + "location" : azurerm_resource_group.ResourceGroup.location + "name" : azurerm_resource_group.ResourceGroup.name + } +} + +output "SshKey" { + sensitive = true + value = { + "private_key_pem" : tls_private_key.SshKey.private_key_pem + } +} + +output "Subscription" { + sensitive = true + value = { + "display_name" : data.azurerm_subscription.current.display_name + "subscription_id" : data.azurerm_subscription.current.subscription_id + } +} + +output "Subscriptions" { + sensitive = true + value = { + "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/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf new file mode 100644 index 00000000..594ffb16 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/provider.tf @@ -0,0 +1,12 @@ +provider "azurerm" { + client_id = local.ClientId + client_secret = local.ClientSecret + resource_provider_registrations = local.ResourceProviderRegistrations + subscription_id = local.SubscriptionId + tenant_id = local.TenantId + features { + resource_group { + prevent_deletion_if_contains_resources = false + } + } +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf new file mode 100644 index 00000000..cb311197 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/ssh.tf @@ -0,0 +1,11 @@ +resource "azurerm_ssh_public_key" "SshKey" { + name = local.SshKeyName + resource_group_name = azurerm_resource_group.ResourceGroup.name + location = azurerm_resource_group.ResourceGroup.location + public_key = tls_private_key.SshKey.public_key_openssh +} + +resource "tls_private_key" "SshKey" { + algorithm = local.SshKeyAlgorithm + rsa_bits = local.SshKeyRsaBits +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars new file mode 100644 index 00000000..9f45b379 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.azure.auto.tfvars @@ -0,0 +1,5 @@ +# ClientId = "00000000-0000-0000-0000-000000000000" +# ClientSecret = "ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567" +# ResourceProviderRegistrations = "core" +# SubscriptionId = "00000000-0000-0000-0000-000000000000" +# TenantId = "00000000-0000-0000-0000-000000000000" \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf similarity index 100% rename from microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf rename to microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/variables.tf diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 00000000..17b5a9a6 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.5.7" + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = ">= 4.10.0" + } + } +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf new file mode 100644 index 00000000..38eeaa83 --- /dev/null +++ b/microsoft-azure/Deployment/Terraform/IxNetworkWeb-FullDeployment/IxNetworkWeb-on-Azure-1-CTA-1-Vnet-1-Public-Subnet-1-Private-Subnet/vnet.tf @@ -0,0 +1,10 @@ +module "Vnet" { + source = "git::https://github.com/armdupre/terraform-azurerm-module-1-vnet-1-public-subnet-1-private-subnet.git?ref=11.0.0" + PublicSecurityRuleSourceIpPrefixes = local.PublicSecurityRuleSourceIpPrefixes + ResourceGroupLocation = azurerm_resource_group.ResourceGroup.location + ResourceGroupName = azurerm_resource_group.ResourceGroup.name + Tag = local.AppTag + UserEmailTag = local.UserEmailTag + UserLoginTag = local.UserLoginTag + UserProjectTag = local.UserProjectTag +} \ No newline at end of file diff --git a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md deleted file mode 100644 index 2fbf238c..00000000 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# IxNetworkWeb-on-Azure-1-App-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet - -## Description -This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. - -## Optional Variables -``` -terraform.azure.auto.tfvars -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -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/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md deleted file mode 100644 index 34172e81..00000000 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet - -## Description -This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. - -## Optional Variables -``` -terraform.azure.auto.tfvars -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -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/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf deleted file mode 100644 index f61deca6..00000000 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf +++ /dev/null @@ -1,50 +0,0 @@ -output "Agent1Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address - } -} - -output "Agent2Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "AppEth0PublicIpAddress" { - value = { - "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.Eth0PublicIpAddress.ip_address - } -} - -output "ResourceGroup" { - value = { - "location" : azurerm_resource_group.ResourceGroup.location - "name" : azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md b/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md deleted file mode 100644 index 9f2c52c0..00000000 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet - -## Description -This deployment creates a topology with a single virtual network having a single public facing subnet and a single private subnet. - -## Optional Variables -``` -terraform.azure.auto.tfvars -terraform.optional.auto.tfvars -``` -You **MAY** uncomment one or more lines as needed in these files and replace values to match your particular environment. - -## Required Usage -``` -terraform init -terraform apply -auto-approve -terraform destroy -auto-approve -``` - -## Optional Usage -``` -terraform validate -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/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index f61deca6..00000000 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-App-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,50 +0,0 @@ -output "Agent1Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address - } -} - -output "Agent2Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "AppEth0PublicIpAddress" { - value = { - "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.Eth0PublicIpAddress.ip_address - } -} - -output "ResourceGroup" { - value = { - "location" : azurerm_resource_group.ResourceGroup.location - "name" : azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index 568970f8..00000000 --- a/microsoft-azure/Deployment/Terraform/IxNetworkWeb/IxNetworkWeb-on-Azure-1-Cloud-App-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,42 +0,0 @@ -output "AppEth0PublicIpAddress" { - value = { - "fqdn" : module.App.Eth0PublicIpAddress.fqdn - "ip_address" : module.App.Eth0PublicIpAddress.ip_address - } -} - -output "AppInstance" { - value = { - "size" : module.App.Instance.size - } -} - -output "ResourceGroup" { - value = { - "location" : azurerm_resource_group.ResourceGroup.location - "name" : azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index e465fb4e..00000000 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,36 +0,0 @@ -output "Agent1Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address - } -} - -output "ResourceGroup" { - value = { - "location" : azurerm_resource_group.ResourceGroup.location - "name" : azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index 8cb9fe48..00000000 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,43 +0,0 @@ -output "Agent1Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address - } -} - -output "Agent2Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "ResourceGroup" { - value = { - "location" : azurerm_resource_group.ResourceGroup.location - "name" : azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf b/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf deleted file mode 100644 index 8cb9fe48..00000000 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-1-Vnet-1-Public-Subnet-2-Private-Subnets/output.tf +++ /dev/null @@ -1,43 +0,0 @@ -output "Agent1Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address - } -} - -output "Agent2Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "ResourceGroup" { - value = { - "location" : azurerm_resource_group.ResourceGroup.location - "name" : azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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/IxVM/IxVM-on-Azure-2-Agents-Add-On/output.tf b/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/output.tf deleted file mode 100644 index 77009b21..00000000 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Agents-Add-On/output.tf +++ /dev/null @@ -1,43 +0,0 @@ -output "Agent1Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address - } -} - -output "Agent2Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "ResourceGroup" { - value = { - "location" : data.azurerm_resource_group.ResourceGroup.location - "name" : data.azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index 8cb9fe48..00000000 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-Azure-2-Cloud-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,43 +0,0 @@ -output "Agent1Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address - } -} - -output "Agent2Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "ResourceGroup" { - value = { - "location" : azurerm_resource_group.ResourceGroup.location - "name" : azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index e465fb4e..00000000 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-1-Agent-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,36 +0,0 @@ -output "Agent1Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address - } -} - -output "ResourceGroup" { - value = { - "location" : azurerm_resource_group.ResourceGroup.location - "name" : azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf b/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index 8cb9fe48..00000000 --- a/microsoft-azure/Deployment/Terraform/IxVM/IxVM-on-AzureGovCloud-2-Agents-1-Vnet-1-Public-Subnet-1-Private-Subnet/output.tf +++ /dev/null @@ -1,43 +0,0 @@ -output "Agent1Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent1.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent1.Eth0PublicIpAddress.ip_address - } -} - -output "Agent2Eth0PublicIpAddress" { - value = { - "fqdn" : module.Agent2.Eth0PublicIpAddress.fqdn - "ip_address" : module.Agent2.Eth0PublicIpAddress.ip_address - } -} - -output "ResourceGroup" { - value = { - "location" : azurerm_resource_group.ResourceGroup.location - "name" : azurerm_resource_group.ResourceGroup.name - } -} - -output "SshKey" { - sensitive = true - value = { - "private_key_pem" : tls_private_key.SshKey.private_key_pem - } -} - -output "Subscription" { - sensitive = true - value = { - "display_name" : data.azurerm_subscription.current.display_name - "subscription_id" : data.azurerm_subscription.current.subscription_id - } -} - -output "Subscriptions" { - sensitive = true - value = { - "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