diff --git a/.gitignore b/.gitignore index 38a45c2..dc0e4dd 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ *.tfstate* *.lock.hcl terraform.auto.tfvars +backend.tf .sshkey.pem -Makefile \ No newline at end of file diff --git a/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 0000000..7bf79dd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 0000000..390662d --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 89% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index a00fb75..1a3f819 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet +# IxLoad-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. @@ -14,7 +14,7 @@ You **MAY** uncomment one or more lines as needed in these files and replace val ``` terraform init terraform apply -auto-approve -terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > SshKey.pem +terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshKey.pem terraform destroy -auto-approve ``` You **MUST** output the SSH key pair associated with the AWS instances. @@ -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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf 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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 53% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf index f2a823c..d2f0f10 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/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" { @@ -8,4 +16,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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 96% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index ee6fe22..a642f86 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 86% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index a613de5..28b2a08 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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-ixload-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 0000000..20532cb --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index 9b5e192..eb1abed 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 0000000..a51f2fd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 80% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf index 45f4816..283d241 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 82% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3be1166..9de32d8 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 0000000..7bf79dd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 0000000..147342b --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 89% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index a551477..ff9ee27 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md @@ -1,4 +1,4 @@ -# IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet +# IxLoad-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. @@ -14,7 +14,7 @@ You **MAY** uncomment one or more lines as needed in these files and replace val ``` terraform init terraform apply -auto-approve -terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > SshKey.pem +terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshKey.pem terraform destroy -auto-approve ``` You **MUST** output the SSH key pair associated with the AWS instances. @@ -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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf new file mode 100644 index 0000000..d2f0f10 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf similarity index 97% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index c1666b8..bb49bbd 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf similarity index 85% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index c2917be..0430958 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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-ixload-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 0000000..fdffca5 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/ssh.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index 9b5e192..eb1abed 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 0000000..a51f2fd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf similarity index 80% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf index 45f4816..283d241 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf similarity index 82% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3be1166..9de32d8 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh new file mode 100644 index 0000000..7bf79dd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile new file mode 100644 index 0000000..147342b --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md similarity index 89% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md index e13b2b2..eb63ad5 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md @@ -1,4 +1,4 @@ -# IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets +# IxLoad-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. @@ -14,7 +14,7 @@ You **MAY** uncomment one or more lines as needed in these files and replace val ``` terraform init terraform apply -auto-approve -terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > SshKey.pem +terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshKey.pem terraform destroy -auto-approve ``` You **MUST** output the SSH key pair associated with the AWS instances. @@ -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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf new file mode 100644 index 0000000..d2f0f10 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf similarity index 97% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf index e038640..a133c2a 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf similarity index 85% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf index dbd0f66..09b7403 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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-ixload-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 0000000..649bbd7 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/ssh.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/ssh.tf similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/ssh.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/ssh.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars index b152d63..a868409 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf new file mode 100644 index 0000000..1d0d68a --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/versions.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf similarity index 80% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/versions.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf index 45f4816..283d241 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/versions.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf similarity index 84% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf index c491121..48eea2c 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/CloudShell/connect.sh b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/CloudShell/connect.sh new file mode 100644 index 0000000..7bf79dd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/Makefile b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/Makefile new file mode 100644 index 0000000..147342b --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/README.md b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/README.md similarity index 94% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/README.md rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/README.md index 823865b..51ac2a2 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/README.md +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/README.md @@ -1,4 +1,4 @@ -# IxLoad-on-AWS-1-App-2-Agents-Add-On +# IxLoad-on-AWS-1-App-2-VTAs-Add-On ## Description This deployment creates resources that will be attached to an existing network topology. @@ -21,7 +21,7 @@ You **MAY** uncomment one or more lines as needed in these files and replace val ``` terraform init terraform apply -auto-approve -terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > SshKey.pem +terraform output SshKey | tail -n +3 | head -n-3 | sed "s/^[ \t]*//" > .sshKey.pem terraform destroy -auto-approve ``` You **MUST** output the SSH key pair associated with the AWS instances. @@ -33,4 +33,4 @@ terraform validate terraform plan terraform state list terraform output -``` \ No newline at end of file +``` diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/aws.variables.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/aws.variables.tf similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/aws.variables.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/data.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/data.tf similarity index 79% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/data.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/data.tf index 1ade427..0398d8c 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/data.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/locals.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/locals.tf similarity index 70% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/locals.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/locals.tf index 63512e7..6fd0f26 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/locals.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/main.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/main.tf similarity index 81% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/main.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/main.tf index e244b89..7ba1b22 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/main.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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-ixload-app.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/output.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/output.tf new file mode 100644 index 0000000..fdffca5 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/provider.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/provider.tf similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/provider.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/provider.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/ssh.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/ssh.tf similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/ssh.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/ssh.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/terraform.aws.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/terraform.aws.auto.tfvars diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars similarity index 85% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/terraform.optional.auto.tfvars index 93ca8eb..5bec66f 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/terraform.required.auto.tfvars b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars similarity index 100% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/terraform.required.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/terraform.required.auto.tfvars diff --git a/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/variables.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/variables.tf new file mode 100644 index 0000000..9331c60 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/versions.tf similarity index 80% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf rename to aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-on-AWS-1-App-2-VTAs-Add-On/versions.tf index 45f4816..283d241 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf +++ b/aws/Deployment/Terraform/IxLoad-FullDeployment/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 0000000..7bf79dd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 0000000..0ebb55c --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 90% 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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index c43f7b3..64dffb1 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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-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 +# IxLoad-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/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 69% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf index f2a823c..c5d7892 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index 6e6dbcf..e773615 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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index 8feeea0..ef5422d 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/IxLoad-TestApplianceOnly/IxLoad-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 0000000..f14ec30 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index cbe1af8..301714d 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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 0000000..b43bce5 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 0000000..283d241 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxVM/IxVM-on-AWS-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-1-VTA-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3d15e19..2d50b91 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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/CloudShell/connect.sh new file mode 100644 index 0000000..7bf79dd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/Makefile new file mode 100644 index 0000000..78f3201 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md similarity index 90% 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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/README.md index bda12a3..ab45a3a 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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-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 +# IxLoad-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/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf similarity index 69% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf index f2a823c..c5d7892 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/data.tf +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/locals.tf index b10dfc9..03f0287 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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-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-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/main.tf index acdbfca..2001ae2 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/IxLoad-TestApplianceOnly/IxLoad-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf new file mode 100644 index 0000000..8072439 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/provider.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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-1-Private-Subnet/provider.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/terraform.optional.auto.tfvars index cbe1af8..301714d 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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf new file mode 100644 index 0000000..b43bce5 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/versions.tf new file mode 100644 index 0000000..283d241 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf index 3d15e19..2d50b91 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/vpc.tf +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/CloudShell/connect.sh new file mode 100644 index 0000000..7bf79dd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/Makefile new file mode 100644 index 0000000..78f3201 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/README.md index fbdea5e..11fed96 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/IxLoad-TestApplianceOnly/IxLoad-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 +# IxLoad-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/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/aws.variables.tf diff --git a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf similarity index 69% rename from aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf index f2a823c..c5d7892 100644 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/data.tf +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/locals.tf index b98334f..1212ce3 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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/main.tf index 4b9418d..18eb964 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/IxLoad-TestApplianceOnly/IxLoad-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf new file mode 100644 index 0000000..8072439 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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-1-VPC-1-Public-Subnet-2-Private-Subnets/provider.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.aws.auto.tfvars rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/terraform.optional.auto.tfvars index 80e7be5..240a0ef 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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf new file mode 100644 index 0000000..1646fa6 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/versions.tf new file mode 100644 index 0000000..283d241 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxVM/IxVM-on-AWS-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-1-VPC-1-Public-Subnet-2-Private-Subnets/vpc.tf index b38ce19..8d5a54b 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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/CloudShell/connect.sh b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/CloudShell/connect.sh new file mode 100644 index 0000000..7bf79dd --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/Makefile b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/Makefile new file mode 100644 index 0000000..628a6e8 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/README.md similarity index 96% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/README.md rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/README.md index 2fad851..70ff9bd 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/README.md +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/README.md @@ -1,4 +1,4 @@ -# IxVM-on-AWS-2-Agents-Add-On +# IxLoad-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/IxVM/IxVM-on-AWS-2-Agents-Add-On/aws.variables.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/data.tf similarity index 88% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/data.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/data.tf index 1ade427..dc94b5c 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/data.tf +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/locals.tf index 62dcb1b..2ced8b1 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/locals.tf +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/main.tf similarity index 88% rename from aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/main.tf rename to aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/main.tf index 92fa755..f32f3ca 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/main.tf +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/main.tf @@ -1,5 +1,5 @@ module "Agent1" { - source = "git::https://github.com/armdupre/terraform-aws-module-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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-ixload-agent.git?ref=11.0.0" + source = "git::https://github.com/Keysight/terraform-aws-module-ixload-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/output.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/output.tf new file mode 100644 index 0000000..8072439 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxVM/IxVM-on-AWS-2-Agents-Add-On/provider.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/provider.tf diff --git a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.aws.auto.tfvars b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/terraform.optional.auto.tfvars index 7fa417d..823ab2a 100644 --- a/aws/Deployment/Terraform/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.optional.auto.tfvars +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxVM/IxVM-on-AWS-2-Agents-Add-On/terraform.required.auto.tfvars b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/terraform.required.auto.tfvars diff --git a/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/variables.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/variables.tf new file mode 100644 index 0000000..01f25c4 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/versions.tf b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-on-AWS-2-VTAs-Add-On/versions.tf new file mode 100644 index 0000000..283d241 --- /dev/null +++ b/aws/Deployment/Terraform/IxLoad-TestApplianceOnly/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index f10aa20..0000000 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-1-Agent-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index 3571917..0000000 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf b/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/output.tf deleted file mode 100644 index 16c2c27..0000000 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf b/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-1-Private-Subnet/variables.tf deleted file mode 100644 index 3571917..0000000 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf b/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/output.tf deleted file mode 100644 index 16c2c27..0000000 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf b/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-1-VPC-1-Public-Subnet-2-Private-Subnets/variables.tf deleted file mode 100644 index 8c113c5..0000000 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/output.tf b/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/output.tf deleted file mode 100644 index 16c2c27..0000000 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-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/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/variables.tf b/aws/Deployment/Terraform/IxLoad/IxLoad-on-AWS-1-App-2-Agents-Add-On/variables.tf deleted file mode 100644 index 00877bc..0000000 --- a/aws/Deployment/Terraform/IxLoad/IxLoad-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/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 e641d57..0000000 --- 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 c604785..0000000 --- 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 45f4816..0000000 --- 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 f2a823c..0000000 --- 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 270b588..0000000 --- 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 c604785..0000000 --- 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 45f4816..0000000 --- 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-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 f2a823c..0000000 --- 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 270b588..0000000 --- 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 26f05df..0000000 --- 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 45f4816..0000000 --- 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 270b588..0000000 --- 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 1b28b7c..0000000 --- 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 45f4816..0000000 --- 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