Terraform: Cleanup 70/33670/2
authorpmikus <pmikus@cisco.com>
Mon, 6 Sep 2021 12:19:11 +0000 (12:19 +0000)
committerPeter Mikus <pmikus@cisco.com>
Mon, 6 Sep 2021 12:23:29 +0000 (12:23 +0000)
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: Ifec4087b4522754cb05f5b0408c02dad4e9ada67

12 files changed:
fdio.infra.terraform/.gitignore [new file with mode: 0644]
fdio.infra.terraform/1n_nmd/.gitignore [deleted file]
fdio.infra.terraform/2n_aws_c5n/.gitignore [deleted file]
fdio.infra.terraform/2n_aws_c5n/deploy/main.tf
fdio.infra.terraform/2n_aws_c5n/deploy/variables.tf
fdio.infra.terraform/2n_aws_c5n/variables.tf
fdio.infra.terraform/3n_aws_c5n/.gitignore [deleted file]
fdio.infra.terraform/3n_aws_c5n/deploy/main.tf
fdio.infra.terraform/3n_aws_c5n/deploy/variables.tf
fdio.infra.terraform/3n_aws_c5n/variables.tf
fdio.infra.terraform/3n_azure_fsv2/.gitignore [deleted file]
fdio.infra.terraform/README.md [moved from fdio.infra.terraform/README.txt with 78% similarity]

diff --git a/fdio.infra.terraform/.gitignore b/fdio.infra.terraform/.gitignore
new file mode 100644 (file)
index 0000000..5084941
--- /dev/null
@@ -0,0 +1,34 @@
+# Local .terraform directories
+**/.terraform/*
+
+# .tfstate files
+*.tfstate
+*.tfstate.*
+
+# Crash log files
+crash.log
+
+# Exclude all .tfvars files, which are likely to contain sentitive data, such as
+# password, private keys, and other secrets. These should not be part of version
+# control as they are data points which are potentially sensitive and subject
+# to change depending on the environment.
+#
+*.tfvars
+
+# Ignore override files as they are usually used to override resources locally and so
+# are not checked in
+override.tf
+override.tf.json
+*_override.tf
+*_override.tf.json
+
+# Include override files you do wish to add to version control using negated pattern
+#
+# !example_override.tf
+
+# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
+# example: *tfplan*
+
+# Ignore CLI configuration files
+.terraformrc
+terraform.rc
\ No newline at end of file
diff --git a/fdio.infra.terraform/1n_nmd/.gitignore b/fdio.infra.terraform/1n_nmd/.gitignore
deleted file mode 100644 (file)
index 8b1a7ba..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.terraform/
\ No newline at end of file
diff --git a/fdio.infra.terraform/2n_aws_c5n/.gitignore b/fdio.infra.terraform/2n_aws_c5n/.gitignore
deleted file mode 100644 (file)
index 40f77d8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-.terraform/
-.terraform.tfstate.lock.info
-.terraform.lock.hcl
-terraform.tfstate
-terraform.tfstate.backup
index 8ab8311..9bac6a7 100644 (file)
 data "vault_aws_access_credentials" "creds" {
-  backend         = "${var.vault-name}-path"
-  role            = "${var.vault-name}-role"
+  backend             = "${var.vault-name}-path"
+  role                = "${var.vault-name}-role"
 }
 
 resource "aws_vpc" "CSITVPC" {
   cidr_block = var.vpc_cidr_mgmt
 
-  tags            = {
-    "Name"        = "${var.resources_name_prefix}_${var.testbed_name}-vpc"
-    "Environment" = var.environment_name
+  tags                = {
+    "Name"            = "${var.resources_name_prefix}_${var.testbed_name}-vpc"
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_security_group" "CSITSG" {
-  name        = "${var.resources_name_prefix}_${var.testbed_name}-sg"
-  description = "Allow inbound traffic"
-  vpc_id      = aws_vpc.CSITVPC.id
-  depends_on  = [aws_vpc.CSITVPC]
+  name                = "${var.resources_name_prefix}_${var.testbed_name}-sg"
+  description         = "Allow inbound traffic"
+  vpc_id              = aws_vpc.CSITVPC.id
+  depends_on          = [aws_vpc.CSITVPC]
 
   ingress {
-    from_port   = 22
-    to_port     = 22
-    protocol    = "tcp"
-    cidr_blocks = ["0.0.0.0/0"]
+    from_port         = 22
+    to_port           = 22
+    protocol          = "tcp"
+    cidr_blocks       = ["0.0.0.0/0"]
   }
 
   ingress {
-    from_port = 0
-    to_port   = 0
-    protocol  = -1
-    self      = true
+    from_port         = 0
+    to_port           = 0
+    protocol          = -1
+    self              = true
   }
 
   egress {
-    from_port   = 0
-    to_port     = 0
-    protocol    = "-1"
-    cidr_blocks = ["0.0.0.0/0"]
+    from_port         = 0
+    to_port           = 0
+    protocol          = "-1"
+    cidr_blocks       = ["0.0.0.0/0"]
   }
 
   tags = {
-    "Name"        = "${var.resources_name_prefix}_${var.testbed_name}-sg"
-    "Environment" = var.environment_name
+    "Name"            = "${var.resources_name_prefix}_${var.testbed_name}-sg"
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_vpc_ipv4_cidr_block_association" "b" {
-  vpc_id     = aws_vpc.CSITVPC.id
-  cidr_block = var.vpc_cidr_b
-  depends_on = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_b
+  depends_on          = [aws_vpc.CSITVPC]
 }
 resource "aws_vpc_ipv4_cidr_block_association" "c" {
-  vpc_id     = aws_vpc.CSITVPC.id
-  cidr_block = var.vpc_cidr_c
-  depends_on = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_c
+  depends_on          = [aws_vpc.CSITVPC]
 }
 resource "aws_vpc_ipv4_cidr_block_association" "d" {
-  vpc_id     = aws_vpc.CSITVPC.id
-  cidr_block = var.vpc_cidr_d
-  depends_on = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_d
+  depends_on          = [aws_vpc.CSITVPC]
 }
 
 # Subnets
 resource "aws_subnet" "mgmt" {
-  vpc_id            = aws_vpc.CSITVPC.id
-  cidr_block        = var.vpc_cidr_mgmt
-  availability_zone = var.avail_zone
-  depends_on        = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_mgmt
+  availability_zone   = var.avail_zone
+  depends_on          = [aws_vpc.CSITVPC]
 
   tags = {
-    "Environment" = var.environment_name
+    "Environment"     = var.environment_name
   }
 }
 resource "aws_subnet" "b" {
-  vpc_id            = aws_vpc.CSITVPC.id
-  cidr_block        = var.vpc_cidr_b
-  availability_zone = var.avail_zone
-  depends_on        = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.b]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_b
+  availability_zone   = var.avail_zone
+  depends_on          = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.b]
 
   tags = {
-    "Environment" = var.environment_name
+    "Environment"     = var.environment_name
   }
 }
 resource "aws_subnet" "c" {
-  vpc_id            = aws_vpc.CSITVPC.id
-  cidr_block        = var.vpc_cidr_c
-  availability_zone = var.avail_zone
-  depends_on        = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.c]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_c
+  availability_zone   = var.avail_zone
+  depends_on          = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.c]
 
   tags = {
-    "Environment" = var.environment_name
+    "Environment"     = var.environment_name
   }
 }
 resource "aws_subnet" "d" {
-  vpc_id            = aws_vpc.CSITVPC.id
-  cidr_block        = var.vpc_cidr_d
-  availability_zone = var.avail_zone
-  depends_on        = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.d]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_d
+  availability_zone   = var.avail_zone
+  depends_on          = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.d]
 
   tags = {
-    "Environment" = var.environment_name
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_internet_gateway" "CSITGW" {
-  vpc_id     = aws_vpc.CSITVPC.id
-  depends_on = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  depends_on          = [aws_vpc.CSITVPC]
 
   tags = {
-    "Environment" = var.environment_name
+    "Environment"     = var.environment_name
   }
 }
 
 # SSH keypair
 # Temporary key for provisioning only
 resource "tls_private_key" "CSITTLS" {
-  algorithm = "RSA"
-  rsa_bits  = 4096
+  algorithm           = "RSA"
+  rsa_bits            = 4096
 }
 resource "aws_key_pair" "CSITKP" {
-  key_name   = "${var.resources_name_prefix}_${var.testbed_name}-key"
-  public_key = tls_private_key.CSITTLS.public_key_openssh
+  key_name            = "${var.resources_name_prefix}_${var.testbed_name}-key"
+  public_key          = tls_private_key.CSITTLS.public_key_openssh
 }
 
 resource "aws_placement_group" "CSITPG" {
-  name     = "${var.resources_name_prefix}_${var.testbed_name}-pg"
-  strategy = "cluster"
+  name                = "${var.resources_name_prefix}_${var.testbed_name}-pg"
+  strategy            = "cluster"
 }
 
 # NICs
 resource "aws_network_interface" "dut1_if1" {
-  subnet_id         = aws_subnet.b.id
-  source_dest_check = false
-  private_ip        = var.dut1_if1_ip
-  private_ips       = [var.dut1_if1_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.dut1]
+  subnet_id           = aws_subnet.b.id
+  source_dest_check   = false
+  private_ip          = var.dut1_if1_ip
+  private_ips         = [var.dut1_if1_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.dut1]
 
   attachment {
-    instance     = aws_instance.dut1.id
-    device_index = 1
+    instance          = aws_instance.dut1.id
+    device_index      = 1
   }
 
   tags = {
-    "Environment" = var.environment_name
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_network_interface" "dut1_if2" {
-  subnet_id         = aws_subnet.d.id
-  source_dest_check = false
-  private_ip        = var.dut1_if2_ip
-  private_ips       = [var.dut1_if2_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.dut1]
+  subnet_id           = aws_subnet.d.id
+  source_dest_check   = false
+  private_ip          = var.dut1_if2_ip
+  private_ips         = [var.dut1_if2_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.dut1]
 
   attachment {
-    instance     = aws_instance.dut1.id
-    device_index = 2
+    instance          = aws_instance.dut1.id
+    device_index      = 2
   }
 
   tags = {
-    "Environment" = var.environment_name
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_network_interface" "tg_if1" {
-  subnet_id         = aws_subnet.b.id
-  source_dest_check = false
-  private_ip        = var.tg_if1_ip
-  private_ips       = [var.tg_if1_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.tg]
+  subnet_id           = aws_subnet.b.id
+  source_dest_check   = false
+  private_ip          = var.tg_if1_ip
+  private_ips         = [var.tg_if1_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.tg]
 
   attachment {
-    instance     = aws_instance.tg.id
-    device_index = 1
+    instance          = aws_instance.tg.id
+    device_index      = 1
   }
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_network_interface" "tg_if2" {
-  subnet_id         = aws_subnet.d.id
-  source_dest_check = false
-  private_ip        = var.tg_if2_ip
-  private_ips       = [var.tg_if2_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.tg]
+  subnet_id           = aws_subnet.d.id
+  source_dest_check   = false
+  private_ip          = var.tg_if2_ip
+  private_ips         = [var.tg_if2_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.tg]
 
   attachment {
-    instance     = aws_instance.tg.id
-    device_index = 2
+    instance          = aws_instance.tg.id
+    device_index      = 2
   }
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 
 data "aws_network_interface" "dut1_if1" {
-  id = aws_network_interface.dut1_if1.id
+  id                  = aws_network_interface.dut1_if1.id
 }
 
 data "aws_network_interface" "dut1_if2" {
-  id = aws_network_interface.dut1_if2.id
+  id                  = aws_network_interface.dut1_if2.id
 }
 
 data "aws_network_interface" "tg_if1" {
-  id = aws_network_interface.tg_if1.id
+  id                  = aws_network_interface.tg_if1.id
 }
 
 data "aws_network_interface" "tg_if2" {
-  id = aws_network_interface.tg_if2.id
+  id                  = aws_network_interface.tg_if2.id
 }
 
 # Instances
@@ -238,8 +238,8 @@ resource "aws_instance" "tg" {
   }
 
   tags = {
-    "Name"        = "${var.resources_name_prefix}_${var.testbed_name}-tg"
-    "Environment" = var.environment_name
+    "Name"            = "${var.resources_name_prefix}_${var.testbed_name}-tg"
+    "Environment"     = var.environment_name
   }
 }
 
@@ -263,8 +263,8 @@ resource "aws_instance" "dut1" {
   }
 
   tags = {
-    "Name"        = "${var.resources_name_prefix}_${var.testbed_name}-dut1"
-    "Environment" = var.environment_name
+    "Name"            = "${var.resources_name_prefix}_${var.testbed_name}-dut1"
+    "Environment"     = var.environment_name
   }
 }
 
@@ -292,7 +292,7 @@ resource "aws_route" "dummy-trex-port-1" {
 
 # Deployment/Ansible
 resource "null_resource" "deploy_tg" {
-  depends_on = [
+  depends_on             = [
     aws_instance.tg,
     aws_network_interface.tg_if1,
     aws_network_interface.tg_if2,
@@ -302,23 +302,23 @@ resource "null_resource" "deploy_tg" {
   ]
 
   connection {
-    user        = "ubuntu"
-    host        = aws_instance.tg.public_ip
-    private_key = tls_private_key.CSITTLS.private_key_pem
+    user                 = "ubuntu"
+    host                 = aws_instance.tg.public_ip
+    private_key          = tls_private_key.CSITTLS.private_key_pem
   }
 
   provisioner "remote-exec" {
-    inline = var.first_run_commands
+    inline               = var.first_run_commands
   }
 
   provisioner "ansible" {
     plays {
       playbook {
-        file_path      = var.ansible_file_path
-        force_handlers = true
+        file_path        = var.ansible_file_path
+        force_handlers   = true
       }
-      hosts      = ["tg_aws"]
-      extra_vars = {
+      hosts              = ["tg_aws"]
+      extra_vars         = {
         ansible_ssh_pass           = var.ansible_provision_pwd
         ansible_python_interpreter = var.ansible_python_executable
         aws                        = true
@@ -327,13 +327,13 @@ resource "null_resource" "deploy_tg" {
   }
 
   provisioner "remote-exec" {
-    on_failure = continue
-    inline = ["sudo reboot"]
+    on_failure           = continue
+    inline               = ["sudo reboot"]
   }
 }
 
 resource "null_resource" "deploy_dut1" {
-  depends_on = [
+  depends_on             = [
     aws_instance.tg,
     aws_network_interface.tg_if1,
     aws_network_interface.tg_if2,
@@ -343,23 +343,23 @@ resource "null_resource" "deploy_dut1" {
   ]
 
   connection {
-    user        = "ubuntu"
-    host        = aws_instance.dut1.public_ip
-    private_key = tls_private_key.CSITTLS.private_key_pem
+    user                 = "ubuntu"
+    host                 = aws_instance.dut1.public_ip
+    private_key          = tls_private_key.CSITTLS.private_key_pem
   }
 
   provisioner "remote-exec" {
-    inline = var.first_run_commands
+    inline               = var.first_run_commands
   }
 
   provisioner "ansible" {
     plays {
       playbook {
-        file_path      = var.ansible_file_path
-        force_handlers = true
+        file_path        = var.ansible_file_path
+        force_handlers   = true
       }
-      hosts      = ["sut_aws"]
-      extra_vars = {
+      hosts              = ["sut_aws"]
+      extra_vars         = {
         ansible_ssh_pass           = var.ansible_provision_pwd
         ansible_python_interpreter = var.ansible_python_executable
         aws                        = true
@@ -368,21 +368,21 @@ resource "null_resource" "deploy_dut1" {
   }
 
   provisioner "remote-exec" {
-    on_failure = continue
-    inline = ["sudo reboot"]
+    on_failure           = continue
+    inline               = ["sudo reboot"]
   }
 }
 
 resource "null_resource" "deploy_topology" {
-  depends_on = [ aws_instance.tg, aws_instance.dut1 ]
+  depends_on             = [ aws_instance.tg, aws_instance.dut1 ]
 
   provisioner "ansible" {
     plays {
       playbook {
         file_path = var.ansible_topology_path
       }
-      hosts      = ["local"]
-      extra_vars = {
+      hosts              = ["local"]
+      extra_vars         = {
         ansible_python_interpreter = var.ansible_python_executable
         testbed_name               = var.testbed_name
         cloud_topology             = var.topology_name
index 9fa5a4d..4c1dddf 100644 (file)
 variable "region" {
-  description = "AWS Region"
-  type = string
+  description     = "AWS Region"
+  type            = string
 }
 
 variable "vault-name" {
-    default = "dynamic-aws-creds-vault-admin"
+    default       = "dynamic-aws-creds-vault-admin"
 }
 
 variable "ami_image" {
-  description = "AWS AMI image name"
-  type = string
+  description     = "AWS AMI image name"
+  type            = string
 }
 
 variable "testbed_name" {
-  description = "Testbed name"
-  type = string
+  description     = "Testbed name"
+  type            = string
 }
 
 variable "instance_initiated_shutdown_behavior" {
-  description = "Shutdown behavior for the instance"
-  type        = string
-  default     = "terminate"
+  description     = "Shutdown behavior for the instance"
+  type            = string
+  default         = "terminate"
 }
 
 variable "instance_type" {
-  description = "AWS instance type"
-  type = string
+  description     = "AWS instance type"
+  type            = string
 }
 
 variable "avail_zone" {
-  description = "AWS availability zone"
-  type = string
+  description     = "AWS availability zone"
+  type            = string
 }
 
 variable "topology_name" {
-  description = "Prefix used when creating a topology file"
-  type = string
-  default = "2n_aws_c5n"
+  description     = "Prefix used when creating a topology file"
+  type            = string
+  default         = "2n_aws_c5n"
 }
 
 variable "environment_name" {
-  description = "Environment name - used for Environment tag"
-  type = string
-  default = "CSIT-AWS"
+  description     = "Environment name - used for Environment tag"
+  type            = string
+  default         = "CSIT-AWS"
 }
 
 variable "resources_name_prefix" {
-  description = "Resource prefix - used for Name tag"
-  type = string
-  default = "CSIT_2n_aws_c5n"
+  description     = "Resource prefix - used for Name tag"
+  type            = string
+  default         = "CSIT_2n_aws_c5n"
 }
 
 variable "first_run_commands" {
-  description = "Commands to run after deployment via remote-exec"
-  type        = list(string)
-  default     = [""]
+  description     = "Commands to run after deployment via remote-exec"
+  type            = list(string)
+  default         = [""]
 }
 
 variable "ansible_file_path" {
-  description = "Path to Ansible playbook"
-  type = string
-  default = "../../fdio.infra.ansible/site.yaml"
+  description     = "Path to Ansible playbook"
+  type            = string
+  default         = "../../fdio.infra.ansible/site.yaml"
 }
 
 variable "ansible_python_executable" {
-  description = "Path to Python interpreter"
-  type = string
-  default = "/usr/bin/python3"
+  description     = "Path to Python interpreter"
+  type            = string
+  default         = "/usr/bin/python3"
 }
 
 variable "ansible_topology_path" {
-  description = "Path to Ansible playbook which creates a topology file"
-  type = string
-  default = "../../fdio.infra.ansible/cloud_topology.yaml"
+  description     = "Path to Ansible playbook which creates a topology file"
+  type            = string
+  default         = "../../fdio.infra.ansible/cloud_topology.yaml"
 }
 
 variable "ansible_provision_pwd" {
-  description = "Password used for ansible provisioning (ansible_ssh_pass)"
-  type        = string
-  default     = "Csit1234"
+  description     = "Password used for ansible provisioning (ansible_ssh_pass)"
+  type            = string
+  default         = "Csit1234"
 }
 
 # Base VPC CIDRs
 variable "vpc_cidr_mgmt" {
-  description = "Management CIDR block"
-  type = string
-  default = "192.168.0.0/24"
+  description     = "Management CIDR block"
+  type            = string
+  default         = "192.168.0.0/24"
 }
 variable "vpc_cidr_b" {
-  description = "CIDR block B"
-  type = string
-  default = "192.168.10.0/24"
+  description     = "CIDR block B"
+  type            = string
+  default         = "192.168.10.0/24"
 }
 variable "vpc_cidr_c" {
-  description = "CIDR block C"
-  type = string
-  default = "200.0.0.0/24"
+  description     = "CIDR block C"
+  type            = string
+  default         = "200.0.0.0/24"
 }
 variable "vpc_cidr_d" {
-  description = "CIDR block D"
-  type = string
-  default = "192.168.20.0/24"
+  description     = "CIDR block D"
+  type            = string
+  default         = "192.168.20.0/24"
 }
 
 # Trex Dummy CIDRs
 variable "trex_dummy_cidr_port_0" {
-  description = "TREX dummy CIDR"
-  type = string
-  default = "10.0.0.0/24"
+  description     = "TREX dummy CIDR"
+  type            = string
+  default         = "10.0.0.0/24"
 }
 variable "trex_dummy_cidr_port_1" {
-  description = "TREX dummy CIDR"
-  type = string
-  default = "20.0.0.0/24"
+  description     = "TREX dummy CIDR"
+  type            = string
+  default         = "20.0.0.0/24"
 }
 
 # IPs
 variable "tg_if1_ip" {
-  description = "TG IP on interface 1"
-  type = string
-  default = "192.168.10.254"
+  description     = "TG IP on interface 1"
+  type            = string
+  default         = "192.168.10.254"
 }
 variable "tg_if2_ip" {
-  description = "TG IP on interface 2"
-  type = string
-  default = "192.168.20.254"
+  description     = "TG IP on interface 2"
+  type            = string
+  default         = "192.168.20.254"
 }
 variable "dut1_if1_ip" {
-  description = "DUT IP on interface 1"
-  type = string
-  default = "192.168.10.11"
+  description     = "DUT IP on interface 1"
+  type            = string
+  default         = "192.168.10.11"
 }
 variable "dut1_if2_ip" {
-  description = "DUT IP on interface 1"
-  type = string
-  default = "192.168.20.11"
+  description     = "DUT IP on interface 1"
+  type            = string
+  default         = "192.168.20.11"
 }
 variable "tg_mgmt_ip" {
-  description = "TG management interface IP"
-  type = string
-  default = "192.168.0.10"
+  description     = "TG management interface IP"
+  type            = string
+  default         = "192.168.0.10"
 }
 variable "dut1_mgmt_ip" {
-  description = "DUT management interface IP"
-  type = string
-  default = "192.168.0.11"
+  description     = "DUT management interface IP"
+  type            = string
+  default         = "192.168.0.11"
 }
index 43a2df3..7c6009b 100644 (file)
@@ -1,35 +1,35 @@
 variable "region" {
-  description = "AWS Region"
-  type = string
-  default = "eu-central-1"
+  description     = "AWS Region"
+  type            = string
+  default         = "eu-central-1"
 }
 
 variable "vault-name" {
-    default = "dynamic-aws-creds-vault-admin"
+    default       = "dynamic-aws-creds-vault-admin"
 }
 
 variable "avail_zone" {
-  description = "AWS availability zone"
-  type = string
-  default = "eu-central-1a"
+  description     = "AWS availability zone"
+  type            = string
+  default         = "eu-central-1a"
 }
 
 variable "ami_image" {
   # eu-central-1/focal-20.04-amd64-hvm-ssd-20210119.1
   # kernel 5.4.0-1035-aws (~5.4.0-65)
-  description = "AWS AMI image ID"
-  type = string
-  default = "ami-0a875db8a031a9efb"
+  description     = "AWS AMI image ID"
+  type            = string
+  default         = "ami-0a875db8a031a9efb"
 }
 
 variable "instance_type" {
-  description = "AWS instance type"
-  type = string
-  default = "c5n.9xlarge"
+  description     = "AWS instance type"
+  type            = string
+  default         = "c5n.9xlarge"
 }
 
 variable "testbed_name" {
-  description = "Testbed name"
-  type = string
-  default = "testbed1"
+  description     = "Testbed name"
+  type            = string
+  default         = "testbed1"
 }
diff --git a/fdio.infra.terraform/3n_aws_c5n/.gitignore b/fdio.infra.terraform/3n_aws_c5n/.gitignore
deleted file mode 100644 (file)
index 40f77d8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-.terraform/
-.terraform.tfstate.lock.info
-.terraform.lock.hcl
-terraform.tfstate
-terraform.tfstate.backup
index 769aa59..5201990 100644 (file)
 data "vault_aws_access_credentials" "creds" {
-  backend         = "${var.vault-name}-path"
-  role            = "${var.vault-name}-role"
+  backend             = "${var.vault-name}-path"
+  role                = "${var.vault-name}-role"
 }
 
 resource "aws_vpc" "CSITVPC" {
-  cidr_block = var.vpc_cidr_mgmt
+  cidr_block          = var.vpc_cidr_mgmt
 
-  tags = {
-    "Name"        = "${var.resources_name_prefix}_${var.testbed_name}-vpc"
-    "Environment" = var.environment_name
+  tags                = {
+    "Name"            = "${var.resources_name_prefix}_${var.testbed_name}-vpc"
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_security_group" "CSITSG" {
-  name        = "${var.resources_name_prefix}_${var.testbed_name}-sg"
-  description = "Allow inbound traffic"
-  vpc_id      = aws_vpc.CSITVPC.id
-  depends_on  = [aws_vpc.CSITVPC]
+  name                = "${var.resources_name_prefix}_${var.testbed_name}-sg"
+  description         = "Allow inbound traffic"
+  vpc_id              = aws_vpc.CSITVPC.id
+  depends_on          = [aws_vpc.CSITVPC]
 
   ingress {
-    from_port   = 22
-    to_port     = 22
-    protocol    = "tcp"
-    cidr_blocks = ["0.0.0.0/0"]
+    from_port         = 22
+    to_port           = 22
+    protocol          = "tcp"
+    cidr_blocks       = ["0.0.0.0/0"]
   }
 
   ingress {
-    from_port = 0
-    to_port   = 0
-    protocol  = -1
-    self      = true
+    from_port         = 0
+    to_port           = 0
+    protocol          = -1
+    self              = true
   }
 
   egress {
-    from_port   = 0
-    to_port     = 0
-    protocol    = "-1"
-    cidr_blocks = ["0.0.0.0/0"]
+    from_port         = 0
+    to_port           = 0
+    protocol          = "-1"
+    cidr_blocks       = ["0.0.0.0/0"]
   }
 
-  tags = {
-    "Name"        = "${var.resources_name_prefix}_${var.testbed_name}-sg"
-    "Environment" = var.environment_name
+  tags                = {
+    "Name"            = "${var.resources_name_prefix}_${var.testbed_name}-sg"
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_vpc_ipv4_cidr_block_association" "b" {
-  vpc_id     = aws_vpc.CSITVPC.id
-  cidr_block = var.vpc_cidr_b
-  depends_on = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_b
+  depends_on          = [aws_vpc.CSITVPC]
 }
 resource "aws_vpc_ipv4_cidr_block_association" "c" {
-  vpc_id     = aws_vpc.CSITVPC.id
-  cidr_block = var.vpc_cidr_c
-  depends_on = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_c
+  depends_on          = [aws_vpc.CSITVPC]
 }
 resource "aws_vpc_ipv4_cidr_block_association" "d" {
-  vpc_id     = aws_vpc.CSITVPC.id
-  cidr_block = var.vpc_cidr_d
-  depends_on = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_d
+  depends_on          = [aws_vpc.CSITVPC]
 }
 
 # Subnets
 resource "aws_subnet" "mgmt" {
-  vpc_id            = aws_vpc.CSITVPC.id
-  cidr_block        = var.vpc_cidr_mgmt
-  availability_zone = var.avail_zone
-  depends_on        = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_mgmt
+  availability_zone   = var.avail_zone
+  depends_on          = [aws_vpc.CSITVPC]
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 resource "aws_subnet" "b" {
-  vpc_id            = aws_vpc.CSITVPC.id
-  cidr_block        = var.vpc_cidr_b
-  availability_zone = var.avail_zone
-  depends_on        = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.b]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_b
+  availability_zone   = var.avail_zone
+  depends_on          = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.b]
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 resource "aws_subnet" "c" {
-  vpc_id            = aws_vpc.CSITVPC.id
-  cidr_block        = var.vpc_cidr_c
-  availability_zone = var.avail_zone
-  depends_on        = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.c]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_c
+  availability_zone   = var.avail_zone
+  depends_on          = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.c]
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 resource "aws_subnet" "d" {
-  vpc_id            = aws_vpc.CSITVPC.id
-  cidr_block        = var.vpc_cidr_d
-  availability_zone = var.avail_zone
-  depends_on        = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.d]
+  vpc_id              = aws_vpc.CSITVPC.id
+  cidr_block          = var.vpc_cidr_d
+  availability_zone   = var.avail_zone
+  depends_on          = [aws_vpc.CSITVPC, aws_vpc_ipv4_cidr_block_association.d]
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_internet_gateway" "CSITGW" {
-  vpc_id     = aws_vpc.CSITVPC.id
-  depends_on = [aws_vpc.CSITVPC]
+  vpc_id              = aws_vpc.CSITVPC.id
+  depends_on          = [aws_vpc.CSITVPC]
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 
 # SSH keypair
 # Temporary key for provisioning only
 resource "tls_private_key" "CSITTLS" {
-  algorithm = "RSA"
-  rsa_bits  = 4096
+  algorithm           = "RSA"
+  rsa_bits            = 4096
 }
 resource "aws_key_pair" "CSITKP" {
-  key_name   = "CSIT_3n_aws_c5n_${var.testbed_name}-key"
-  public_key = tls_private_key.CSITTLS.public_key_openssh
+  key_name            = "CSIT_3n_aws_c5n_${var.testbed_name}-key"
+  public_key          = tls_private_key.CSITTLS.public_key_openssh
 }
 
 resource "aws_placement_group" "CSITPG" {
-  name     = "${var.resources_name_prefix}_${var.testbed_name}-pg"
-  strategy = "cluster"
+  name                = "${var.resources_name_prefix}_${var.testbed_name}-pg"
+  strategy            = "cluster"
 }
 
 # NICs
 resource "aws_network_interface" "dut1_if1" {
-  subnet_id         = aws_subnet.b.id
-  source_dest_check = false
-  private_ip        = var.dut1_if1_ip
-  private_ips       = [var.dut1_if1_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.dut1]
+  subnet_id           = aws_subnet.b.id
+  source_dest_check   = false
+  private_ip          = var.dut1_if1_ip
+  private_ips         = [var.dut1_if1_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.dut1]
 
   attachment {
-    instance     = aws_instance.dut1.id
-    device_index = 1
+    instance          = aws_instance.dut1.id
+    device_index      = 1
   }
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_network_interface" "dut1_if2" {
-  subnet_id         = aws_subnet.c.id
-  source_dest_check = false
-  private_ip        = var.dut1_if2_ip
-  private_ips       = [var.dut1_if2_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.c, aws_instance.dut1]
+  subnet_id           = aws_subnet.c.id
+  source_dest_check   = false
+  private_ip          = var.dut1_if2_ip
+  private_ips         = [var.dut1_if2_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.c, aws_instance.dut1]
 
   attachment {
-    instance     = aws_instance.dut1.id
-    device_index = 2
+    instance          = aws_instance.dut1.id
+    device_index      = 2
   }
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_network_interface" "dut2_if1" {
-  subnet_id         = aws_subnet.c.id
-  source_dest_check = false
-  private_ip        = var.dut2_if1_ip
-  private_ips       = [var.dut2_if1_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.c, aws_instance.dut2]
+  subnet_id           = aws_subnet.c.id
+  source_dest_check   = false
+  private_ip          = var.dut2_if1_ip
+  private_ips         = [var.dut2_if1_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.c, aws_instance.dut2]
 
   attachment {
-    instance     = aws_instance.dut2.id
-    device_index = 1
+    instance          = aws_instance.dut2.id
+    device_index      = 1
   }
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_network_interface" "dut2_if2" {
-  subnet_id         = aws_subnet.d.id
-  source_dest_check = false
-  private_ip        = var.dut2_if2_ip
-  private_ips       = [var.dut2_if2_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.dut2]
+  subnet_id           = aws_subnet.d.id
+  source_dest_check   = false
+  private_ip          = var.dut2_if2_ip
+  private_ips         = [var.dut2_if2_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.dut2]
 
   attachment {
-    instance     = aws_instance.dut2.id
-    device_index = 2
+    instance          = aws_instance.dut2.id
+    device_index      = 2
   }
 
-  tags = {
-    "Environment" = var.environment_name
+  tags                = {
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_network_interface" "tg_if1" {
-  subnet_id         = aws_subnet.b.id
-  source_dest_check = false
-  private_ip        = var.tg_if1_ip
-  private_ips       = [var.tg_if1_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.tg]
+  subnet_id           = aws_subnet.b.id
+  source_dest_check   = false
+  private_ip          = var.tg_if1_ip
+  private_ips         = [var.tg_if1_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.tg]
 
   attachment {
-    instance     = aws_instance.tg.id
-    device_index = 1
+    instance          = aws_instance.tg.id
+    device_index      = 1
   }
 
   tags = {
-    "Environment" = var.environment_name
+    "Environment"     = var.environment_name
   }
 }
 
 resource "aws_network_interface" "tg_if2" {
-  subnet_id         = aws_subnet.d.id
-  source_dest_check = false
-  private_ip        = var.tg_if2_ip
-  private_ips       = [var.tg_if2_ip]
-  security_groups   = [aws_security_group.CSITSG.id]
-  depends_on        = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.tg]
+  subnet_id           = aws_subnet.d.id
+  source_dest_check   = false
+  private_ip          = var.tg_if2_ip
+  private_ips         = [var.tg_if2_ip]
+  security_groups     = [aws_security_group.CSITSG.id]
+  depends_on          = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.tg]
 
   attachment {
-    instance     = aws_instance.tg.id
-    device_index = 2
+    instance          = aws_instance.tg.id
+    device_index      = 2
   }
 
   tags = {
-    "Environment" = var.environment_name
+    "Environment"     = var.environment_name
   }
 }
 
 data "aws_network_interface" "dut1_if1" {
-  id = aws_network_interface.dut1_if1.id
+  id                  = aws_network_interface.dut1_if1.id
 }
 
 data "aws_network_interface" "dut1_if2" {
-  id = aws_network_interface.dut1_if2.id
+  id                  = aws_network_interface.dut1_if2.id
 }
 
 data "aws_network_interface" "dut2_if1" {
-  id = aws_network_interface.dut2_if1.id
+  id                  = aws_network_interface.dut2_if1.id
 }
 
 data "aws_network_interface" "dut2_if2" {
-  id = aws_network_interface.dut2_if2.id
+  id                  = aws_network_interface.dut2_if2.id
 }
 
 data "aws_network_interface" "tg_if1" {
-  id = aws_network_interface.tg_if1.id
+  id                  = aws_network_interface.tg_if1.id
 }
 
 data "aws_network_interface" "tg_if2" {
-  id = aws_network_interface.tg_if2.id
+  id                  = aws_network_interface.tg_if2.id
 }
 
 # Instances
@@ -276,18 +276,18 @@ resource "aws_instance" "tg" {
   source_dest_check                    = false
   # host_id                            = "1"
 
-  depends_on = [
+  depends_on             = [
     aws_vpc.CSITVPC,
     aws_placement_group.CSITPG,
   ]
 
   root_block_device {
-    volume_size = 50
+    volume_size          = 50
   }
 
-  tags = {
-    "Name"        = "${var.resources_name_prefix}_${var.testbed_name}-tg"
-    "Environment" = var.environment_name
+  tags                   = {
+    "Name"               = "${var.resources_name_prefix}_${var.testbed_name}-tg"
+    "Environment"        = var.environment_name
   }
 }
 
@@ -305,19 +305,19 @@ resource "aws_instance" "dut1" {
   source_dest_check                    = false
   # host_id                            = "2"
 
-  depends_on = [
+  depends_on             = [
     aws_vpc.CSITVPC,
     aws_placement_group.CSITPG,
     aws_instance.tg
   ]
 
   root_block_device {
-    volume_size = 50
+    volume_size          = 50
   }
 
-  tags = {
-    "Name"        = "${var.resources_name_prefix}_${var.testbed_name}-dut1"
-    "Environment" = var.environment_name
+  tags                   = {
+    "Name"               = "${var.resources_name_prefix}_${var.testbed_name}-dut1"
+    "Environment"        = var.environment_name
   }
 }
 
@@ -334,7 +334,7 @@ resource "aws_instance" "dut2" {
   source_dest_check           = false
   # host_id                   = "3"
 
-  depends_on = [
+  depends_on             = [
     aws_vpc.CSITVPC,
     aws_placement_group.CSITPG,
     aws_instance.tg,
@@ -342,12 +342,12 @@ resource "aws_instance" "dut2" {
   ]
 
   root_block_device {
-    volume_size = 50
+    volume_size          = 50
   }
 
-  tags = {
-    "Name"        = "${var.resources_name_prefix}_${var.testbed_name}-dut2"
-    "Environment" = var.environment_name
+  tags                   = {
+    "Name"               = "${var.resources_name_prefix}_${var.testbed_name}-dut2"
+    "Environment"        = var.environment_name
   }
 }
 
@@ -373,7 +373,7 @@ resource "aws_route" "dummy-trex-port-1" {
 
 # Deployment/Ansible
 resource "null_resource" "deploy_tg" {
-  depends_on = [
+  depends_on             = [
     aws_instance.tg,
     aws_network_interface.tg_if1,
     aws_network_interface.tg_if2,
@@ -386,23 +386,23 @@ resource "null_resource" "deploy_tg" {
   ]
 
   connection {
-    user        = "ubuntu"
-    host        = aws_instance.tg.public_ip
-    private_key = tls_private_key.CSITTLS.private_key_pem
+    user                 = "ubuntu"
+    host                 = aws_instance.tg.public_ip
+    private_key          = tls_private_key.CSITTLS.private_key_pem
   }
 
   provisioner "remote-exec" {
-    inline = var.first_run_commands
+    inline               = var.first_run_commands
   }
 
   provisioner "ansible" {
     plays {
       playbook {
-        file_path      = var.ansible_file_path
-        force_handlers = true
+        file_path        = var.ansible_file_path
+        force_handlers   = true
       }
-      hosts      = ["tg_aws"]
-      extra_vars = {
+      hosts              = ["tg_aws"]
+      extra_vars         = {
         ansible_ssh_pass           = var.ansible_provision_pwd
         ansible_python_interpreter = var.ansible_python_executable
         aws                        = true
@@ -411,13 +411,13 @@ resource "null_resource" "deploy_tg" {
   }
 
   provisioner "remote-exec" {
-    on_failure = continue
-    inline = ["sudo reboot"]
+    on_failure           = continue
+    inline               = ["sudo reboot"]
   }
 }
 
 resource "null_resource" "deploy_dut1" {
-  depends_on = [
+  depends_on             = [
     aws_instance.tg,
     aws_network_interface.tg_if1,
     aws_network_interface.tg_if2,
@@ -430,23 +430,23 @@ resource "null_resource" "deploy_dut1" {
   ]
 
   connection {
-    user        = "ubuntu"
-    host        = aws_instance.dut1.public_ip
-    private_key = tls_private_key.CSITTLS.private_key_pem
+    user                 = "ubuntu"
+    host                 = aws_instance.dut1.public_ip
+    private_key          = tls_private_key.CSITTLS.private_key_pem
   }
 
   provisioner "remote-exec" {
-    inline = var.first_run_commands
+    inline               = var.first_run_commands
   }
 
   provisioner "ansible" {
     plays {
       playbook {
-        file_path      = var.ansible_file_path
-        force_handlers = true
+        file_path        = var.ansible_file_path
+        force_handlers   = true
       }
-      hosts      = ["sut_aws"]
-      extra_vars = {
+      hosts              = ["sut_aws"]
+      extra_vars         = {
         ansible_ssh_pass           = var.ansible_provision_pwd
         ansible_python_interpreter = var.ansible_python_executable
         aws                        = true
@@ -455,13 +455,13 @@ resource "null_resource" "deploy_dut1" {
   }
 
   provisioner "remote-exec" {
-    on_failure = continue
-    inline = ["sudo reboot"]
+    on_failure           = continue
+    inline               = ["sudo reboot"]
   }
 }
 
 resource "null_resource" "deploy_dut2" {
-  depends_on = [
+  depends_on             = [
     aws_instance.tg,
     aws_network_interface.tg_if1,
     aws_network_interface.tg_if2,
@@ -474,23 +474,23 @@ resource "null_resource" "deploy_dut2" {
   ]
 
   connection {
-    user        = "ubuntu"
-    host        = aws_instance.dut2.public_ip
-    private_key = tls_private_key.CSITTLS.private_key_pem
+    user                 = "ubuntu"
+    host                 = aws_instance.dut2.public_ip
+    private_key          = tls_private_key.CSITTLS.private_key_pem
   }
 
   provisioner "remote-exec" {
-    inline = var.first_run_commands
+    inline               = var.first_run_commands
   }
 
   provisioner "ansible" {
     plays {
       playbook {
-        file_path      = var.ansible_file_path
-        force_handlers = true
+        file_path        = var.ansible_file_path
+        force_handlers   = true
       }
-      hosts      = ["sut_aws"]
-      extra_vars = {
+      hosts              = ["sut_aws"]
+      extra_vars         = {
         ansible_ssh_pass           = var.ansible_provision_pwd
         ansible_python_interpreter = var.ansible_python_executable
         aws                        = true
@@ -499,21 +499,21 @@ resource "null_resource" "deploy_dut2" {
   }
 
   provisioner "remote-exec" {
-    on_failure = continue
-    inline = ["sudo reboot"]
+    on_failure           = continue
+    inline               = ["sudo reboot"]
   }
 }
 
 resource "null_resource" "deploy_topology" {
-  depends_on = [ aws_instance.tg, aws_instance.dut1, aws_instance.dut2 ]
+  depends_on             = [ aws_instance.tg, aws_instance.dut1, aws_instance.dut2 ]
 
   provisioner "ansible" {
     plays {
       playbook {
-        file_path = var.ansible_topology_path
+        file_path        = var.ansible_topology_path
       }
-      hosts      = ["local"]
-      extra_vars = {
+      hosts              = ["local"]
+      extra_vars         = {
         ansible_python_interpreter = var.ansible_python_executable
         testbed_name               = var.testbed_name
         cloud_topology             = var.topology_name
index f7f3e61..735e6c6 100644 (file)
 variable "region" {
-  description = "AWS Region"
-  type = string
+  description     = "AWS Region"
+  type            = string
 }
 
 variable "vault-name" {
-    default   = "dynamic-aws-creds-vault-admin"
+    default       = "dynamic-aws-creds-vault-admin"
 }
 
 variable "ami_image" {
-  description = "AWS AMI image name"
-  type = string
+  description     = "AWS AMI image name"
+  type            = string
 }
 
 variable "testbed_name" {
-  description = "Testbed name"
-  type = string
+  description     = "Testbed name"
+  type            = string
 }
 
 variable "instance_initiated_shutdown_behavior" {
-  description = "Shutdown behavior for the instance"
-  type        = string
-  default     = "terminate"
+  description     = "Shutdown behavior for the instance"
+  type            = string
+  default         = "terminate"
 }
 
 variable "instance_type" {
-  description = "AWS instance type"
-  type = string
+  description     = "AWS instance type"
+  type            = string
 }
 
 variable "avail_zone" {
-  description = "AWS availability zone"
-  type = string
+  description     = "AWS availability zone"
+  type            = string
 }
 
 variable "topology_name" {
-  description = "Prefix used when creating a topology file"
-  type = string
-  default = "3n_aws_c5n"
+  description     = "Prefix used when creating a topology file"
+  type            = string
+  default         = "3n_aws_c5n"
 }
 
 variable "environment_name" {
-  description = "Environment name - used for Environment tag"
-  type = string
-  default = "CSIT-AWS"
+  description     = "Environment name - used for Environment tag"
+  type            = string
+  default         = "CSIT-AWS"
 }
 
 variable "resources_name_prefix" {
-  description = "Resource prefix - used for Name tag"
-  type = string
-  default = "CSIT_3n_aws_c5n"
+  description     = "Resource prefix - used for Name tag"
+  type            = string
+  default         = "CSIT_3n_aws_c5n"
 }
 
 variable "first_run_commands" {
-  description = "Commands to run after deployment via remote-exec"
-  type        = list(string)
-  default     = [""]
+  description     = "Commands to run after deployment via remote-exec"
+  type            = list(string)
+  default         = [""]
 }
 
 variable "ansible_file_path" {
-  description = "Path to Ansible playbook"
-  type = string
-  default = "../../fdio.infra.ansible/site.yaml"
+  description     = "Path to Ansible playbook"
+  type            = string
+  default         = "../../fdio.infra.ansible/site.yaml"
 }
 
 variable "ansible_python_executable" {
-  description = "Path to Python interpreter"
-  type = string
-  default = "/usr/bin/python3"
+  description     = "Path to Python interpreter"
+  type            = string
+  default         = "/usr/bin/python3"
 }
 
 variable "ansible_topology_path" {
-  description = "Path to Ansible playbook which creates a topology file"
-  type = string
-  default = "../../fdio.infra.ansible/cloud_topology.yaml"
+  description     = "Path to Ansible playbook which creates a topology file"
+  type            = string
+  default         = "../../fdio.infra.ansible/cloud_topology.yaml"
 }
 
 variable "ansible_provision_pwd" {
-  description = "Password used for ansible provisioning (ansible_ssh_pass)"
-  type        = string
-  default     = "Csit1234"
+  description     = "Password used for ansible provisioning (ansible_ssh_pass)"
+  type            = string
+  default         = "Csit1234"
 }
 
 # Base VPC CIDRs
 variable "vpc_cidr_mgmt" {
-  description = "Management CIDR block"
-  type = string
-  default = "192.168.0.0/24"
+  description     = "Management CIDR block"
+  type            = string
+  default         = "192.168.0.0/24"
 }
 variable "vpc_cidr_b" {
-  description = "CIDR block B"
-  type = string
-  default = "192.168.10.0/24"
+  description     = "CIDR block B"
+  type            = string
+  default         = "192.168.10.0/24"
 }
 variable "vpc_cidr_c" {
-  description = "CIDR block C"
-  type = string
-  default = "200.0.0.0/24"
+  description     = "CIDR block C"
+  type            = string
+  default         = "200.0.0.0/24"
 }
 variable "vpc_cidr_d" {
-  description = "CIDR block D"
-  type = string
-  default = "192.168.20.0/24"
+  description     = "CIDR block D"
+  type            = string
+  default         = "192.168.20.0/24"
 }
 
 # Trex Dummy CIDRs
 variable "trex_dummy_cidr_port_0" {
-  description = "TREX dummy CIDR"
-  type = string
-  default = "10.0.0.0/24"
+  description     = "TREX dummy CIDR"
+  type            = string
+  default         = "10.0.0.0/24"
 }
 variable "trex_dummy_cidr_port_1" {
-  description = "TREX dummy CIDR"
-  type = string
-  default = "20.0.0.0/24"
+  description     = "TREX dummy CIDR"
+  type            = string
+  default         = "20.0.0.0/24"
 }
 
 # IPs
 variable "tg_if1_ip" {
-  description = "TG IP on interface 1"
-  type = string
-  default = "192.168.10.254"
+  description     = "TG IP on interface 1"
+  type            = string
+  default         = "192.168.10.254"
 }
 variable "tg_if2_ip" {
-  description = "TG IP on interface 2"
-  type = string
-  default = "192.168.20.254"
+  description     = "TG IP on interface 2"
+  type            = string
+  default         = "192.168.20.254"
 }
 variable "dut1_if1_ip" {
-  description = "DUT IP on interface 1"
-  type = string
-  default = "192.168.10.11"
+  description     = "DUT IP on interface 1"
+  type            = string
+  default         = "192.168.10.11"
 }
 variable "dut1_if2_ip" {
-  description = "DUT IP on interface 2"
-  type = string
-  default = "200.0.0.101"
+  description     = "DUT IP on interface 2"
+  type            = string
+  default         = "200.0.0.101"
 }
 variable "dut2_if1_ip" {
-  description = "DUT2 IP on interface 1"
-  type = string
-  default = "200.0.0.102"
+  description     = "DUT2 IP on interface 1"
+  type            = string
+  default         = "200.0.0.102"
 }
 variable "dut2_if2_ip" {
-  description = "DUT2 IP on interface 2"
-  type = string
-  default = "192.168.20.11"
+  description     = "DUT2 IP on interface 2"
+  type            = string
+  default         = "192.168.20.11"
 }
 variable "tg_mgmt_ip" {
-  description = "TG management interface IP"
-  type = string
-  default = "192.168.0.10"
+  description     = "TG management interface IP"
+  type            = string
+  default         = "192.168.0.10"
 }
 variable "dut1_mgmt_ip" {
-  description = "DUT1 management interface IP"
-  type = string
-  default = "192.168.0.11"
+  description     = "DUT1 management interface IP"
+  type            = string
+  default         = "192.168.0.11"
 }
 variable "dut2_mgmt_ip" {
-  description = "DUT2 management interface IP"
-  type = string
-  default = "192.168.0.12"
+  description     = "DUT2 management interface IP"
+  type            = string
+  default         = "192.168.0.12"
 }
index 0d11014..d3bb8e4 100644 (file)
@@ -1,37 +1,37 @@
 variable "region" {
-  description = "AWS Region"
-  type = string
-  default = "eu-central-1"
+  description     = "AWS Region"
+  type            = string
+  default         = "eu-central-1"
 }
 
 variable "avail_zone" {
-  description = "AWS availability zone"
-  type = string
-  default = "eu-central-1a"
+  description     = "AWS availability zone"
+  type            = string
+  default         = "eu-central-1a"
 }
 
 variable "ami_image" {
   # eu-central-1/focal-20.04-amd64-hvm-ssd-20210119.1
   # kernel 5.4.0-1035-aws (~5.4.0-65)
-  description = "AWS AMI image ID"
-  type = string
-  default = "ami-0a875db8a031a9efb"
+  description     = "AWS AMI image ID"
+  type            = string
+  default         = "ami-0a875db8a031a9efb"
 }
 
 variable "instance_initiated_shutdown_behavior" {
-  description = "Shutdown behavior for the instance"
-  type        = string
-  default     = "terminate"
+  description     = "Shutdown behavior for the instance"
+  type            = string
+  default         = "terminate"
 }
 
 variable "instance_type" {
-  description = "AWS instance type"
-  type = string
-  default = "c5n.9xlarge"
+  description     = "AWS instance type"
+  type            = string
+  default         = "c5n.9xlarge"
 }
 
 variable "testbed_name" {
-  description = "Testbed name"
-  type = string
-  default = "testbed1"
+  description     = "Testbed name"
+  type            = string
+  default         = "testbed1"
 }
diff --git a/fdio.infra.terraform/3n_azure_fsv2/.gitignore b/fdio.infra.terraform/3n_azure_fsv2/.gitignore
deleted file mode 100644 (file)
index fc64f00..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-.terraform/
-.terraform.tfstate.lock.info
-terraform.tfstate
-terraform.tfstate.backup
similarity index 78%
rename from fdio.infra.terraform/README.txt
rename to fdio.infra.terraform/README.md
index 12bbe44..92cdfb2 100644 (file)
@@ -1,32 +1,20 @@
-Terraform CI Infra
-==================
+Terraform CI Infra
+
 This folder contains configuration for terraform based deployments.
 
+## Nomad
 
-Nomad:
-----------------------
 Application orchestration - Nomad
 - ./1n_nmd/
 
+## AWS
 
-AWS:
-----------------------
 Testbed deployment - Amazon AWS
 - ./2n_aws_c5n/
 - ./3n_aws_c5n/
 
-Prerequisities:
-~~~~~~~~~~~~~~~
-aws-cli >= 2.1.21
-  - Configured with personal "AWS Access Key ID" and "AWS Secret Access Key"
-  - See: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html
-
-terraform-provisioner-ansible >= v2.5.0
-  - Terraform's Ansible provisioner requires manual installation
-  - See: https://github.com/radekg/terraform-provisioner-ansible
+### Getting Started
 
-Getting started:
-~~~~~~~~~~~~~~~~
 Tested setup:
 - Install and configure prerequisities as specified.
 
@@ -50,7 +38,7 @@ Tested setup:
     terraform init
     terraform apply
 
-  This will deploy envirnoment with default values, you can check the defaults
+  This will deploy environment with default values, you can check the defaults
   in ./2n_aws_c5n/main.tf and ./2n_aws_c5n/variables.tf files
 
   If you would like to change some of these values, you can:
@@ -78,8 +66,7 @@ Tested setup:
 - To clean up the AWS environment and remove all used resources, run:
     terraform destroy
 
+## Azure
 
-Azure:
-----------------------
 Testbed deployment - Microsoft Azure
 - ./3n_azure_fsv2/