feat(terraform): Remove ansible dependency 97/40097/1
authorpmikus <peter.mikus@protonmail.ch>
Wed, 13 Dec 2023 08:36:04 +0000 (08:36 +0000)
committerpmikus <peter.mikus@protonmail.ch>
Wed, 13 Dec 2023 08:36:04 +0000 (08:36 +0000)
- terraform ansible is not supported on aarch

Signed-off-by: Peter Mikus <peter.mikus@protonmail.ch>
Change-Id: Ic87322a97325124780bc998cfa56a7c9b4ccef19

12 files changed:
fdio.infra.terraform/terraform-aws-1n-aws-c5n/hosts.tftpl
fdio.infra.terraform/terraform-aws-1n-aws-c5n/main.tf
fdio.infra.terraform/terraform-aws-2n-aws-c5n/hosts.tftpl
fdio.infra.terraform/terraform-aws-2n-aws-c5n/main.tf
fdio.infra.terraform/terraform-aws-2n-c6gn/hosts.tftpl
fdio.infra.terraform/terraform-aws-2n-c6gn/main.tf
fdio.infra.terraform/terraform-aws-2n-c6in/hosts.tftpl
fdio.infra.terraform/terraform-aws-2n-c6in/main.tf
fdio.infra.terraform/terraform-aws-2n-c7gn/hosts.tftpl
fdio.infra.terraform/terraform-aws-3n-aws-c5n/main.tf
fdio.infra.terraform/terraform-aws-3n-c6gn/main.tf
fdio.infra.terraform/terraform-aws-3n-c6in/main.tf

index f02586c..ca371b3 100644 (file)
@@ -3,7 +3,3 @@ all:
     tg:
       hosts:
         {{ tg_public_ip }}
-    sut:
-      hosts:
-        {{ dut1_public_ip | default() }}
-        {{ dut2_public_ip | default() }}
index 356a5c4..e455b6b 100644 (file)
@@ -180,27 +180,32 @@ resource "null_resource" "deploy_tg" {
   }
 }
 
+resource "local_file" "topology_file" {
+  depends_on = [
+    aws_instance.tg
+  ]
 
-resource "null_resource" "deploy_topology" {
+  content = templatefile(
+    "${path.module}/topology-${local.topology_name}.tftpl",
+    {
+      tg_if1_mac     = data.aws_network_interface.tg_if1.mac_address
+      tg_if2_mac     = data.aws_network_interface.tg_if2.mac_address
+      tg_public_ip   = aws_instance.tg.public_ip
+    }
+  )
+  filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
   depends_on = [
     aws_instance.tg
   ]
 
-  provisioner "ansible" {
-    plays {
-      playbook {
-        file_path = var.ansible_topology_path
-      }
-      hosts = ["local"]
-      extra_vars = {
-        ansible_python_interpreter = local.ansible_python_executable
-        testbed_name               = local.testbed_name
-        cloud_topology             = local.topology_name
-        tg_if1_mac                 = data.aws_network_interface.tg_if1.mac_address
-        tg_if2_mac                 = data.aws_network_interface.tg_if2.mac_address
-        tg_public_ip               = aws_instance.tg.public_ip
-        public_ip_list             = "${aws_instance.tg.public_ip}"
-      }
+  content = templatefile(
+    "${path.module}/hosts.tftpl",
+    {
+      tg_public_ip   = aws_instance.tg.public_ip
     }
-  }
+  )
+  filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
 }
\ No newline at end of file
index f02586c..b943c3b 100644 (file)
@@ -6,4 +6,3 @@ all:
     sut:
       hosts:
         {{ dut1_public_ip | default() }}
-        {{ dut2_public_ip | default() }}
index 6bcb286..a7abab1 100644 (file)
@@ -298,30 +298,38 @@ resource "null_resource" "deploy_sut1" {
   }
 }
 
-resource "null_resource" "deploy_topology" {
+resource "local_file" "topology_file" {
   depends_on = [
     aws_instance.tg,
     aws_instance.sut1
   ]
 
-  provisioner "ansible" {
-    plays {
-      playbook {
-        file_path = var.ansible_topology_path
-      }
-      hosts = ["local"]
-      extra_vars = {
-        ansible_python_interpreter = local.ansible_python_executable
-        testbed_name               = local.testbed_name
-        cloud_topology             = local.topology_name
-        tg_if1_mac                 = data.aws_network_interface.tg_if1.mac_address
-        tg_if2_mac                 = data.aws_network_interface.tg_if2.mac_address
-        dut1_if1_mac               = data.aws_network_interface.sut1_if1.mac_address
-        dut1_if2_mac               = data.aws_network_interface.sut1_if2.mac_address
-        tg_public_ip               = aws_instance.tg.public_ip
-        dut1_public_ip             = aws_instance.sut1.public_ip
-        public_ip_list             = "${aws_instance.tg.public_ip},${aws_instance.sut1.public_ip}"
-      }
+  content = templatefile(
+    "${path.module}/topology-${local.topology_name}.tftpl",
+    {
+      tg_if1_mac     = data.aws_network_interface.tg_if1.mac_address
+      tg_if2_mac     = data.aws_network_interface.tg_if2.mac_address
+      dut1_if1_mac   = data.aws_network_interface.sut1_if1.mac_address
+      dut1_if2_mac   = data.aws_network_interface.sut1_if2.mac_address
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
     }
-  }
+  )
+  filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+  depends_on = [
+    aws_instance.tg,
+    aws_instance.sut1
+  ]
+
+  content = templatefile(
+    "${path.module}/hosts.tftpl",
+    {
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
+    }
+  )
+  filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
 }
\ No newline at end of file
index f02586c..b943c3b 100644 (file)
@@ -6,4 +6,3 @@ all:
     sut:
       hosts:
         {{ dut1_public_ip | default() }}
-        {{ dut2_public_ip | default() }}
index 99908ac..b3da06b 100644 (file)
@@ -298,30 +298,38 @@ resource "null_resource" "deploy_sut1" {
   }
 }
 
-resource "null_resource" "deploy_topology" {
+resource "local_file" "topology_file" {
   depends_on = [
     aws_instance.tg,
     aws_instance.sut1
   ]
 
-  provisioner "ansible" {
-    plays {
-      playbook {
-        file_path = var.ansible_topology_path
-      }
-      hosts = ["local"]
-      extra_vars = {
-        ansible_python_interpreter = local.ansible_python_executable
-        testbed_name               = local.testbed_name
-        cloud_topology             = local.topology_name
-        tg_if1_mac                 = data.aws_network_interface.tg_if1.mac_address
-        tg_if2_mac                 = data.aws_network_interface.tg_if2.mac_address
-        dut1_if1_mac               = data.aws_network_interface.sut1_if1.mac_address
-        dut1_if2_mac               = data.aws_network_interface.sut1_if2.mac_address
-        tg_public_ip               = aws_instance.tg.public_ip
-        dut1_public_ip             = aws_instance.sut1.public_ip
-        public_ip_list             = "${aws_instance.tg.public_ip},${aws_instance.sut1.public_ip}"
-      }
+  content = templatefile(
+    "${path.module}/topology-${local.topology_name}.tftpl",
+    {
+      tg_if1_mac     = data.aws_network_interface.tg_if1.mac_address
+      tg_if2_mac     = data.aws_network_interface.tg_if2.mac_address
+      dut1_if1_mac   = data.aws_network_interface.sut1_if1.mac_address
+      dut1_if2_mac   = data.aws_network_interface.sut1_if2.mac_address
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
     }
-  }
+  )
+  filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
 }
+
+resource "local_file" "hosts" {
+  depends_on = [
+    aws_instance.tg,
+    aws_instance.sut1
+  ]
+
+  content = templatefile(
+    "${path.module}/hosts.tftpl",
+    {
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
+    }
+  )
+  filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+}
\ No newline at end of file
index f02586c..b943c3b 100644 (file)
@@ -6,4 +6,3 @@ all:
     sut:
       hosts:
         {{ dut1_public_ip | default() }}
-        {{ dut2_public_ip | default() }}
index a756350..5edeb46 100644 (file)
@@ -298,30 +298,38 @@ resource "null_resource" "deploy_sut1" {
   }
 }
 
-resource "null_resource" "deploy_topology" {
+resource "local_file" "topology_file" {
   depends_on = [
     aws_instance.tg,
     aws_instance.sut1
   ]
 
-  provisioner "ansible" {
-    plays {
-      playbook {
-        file_path = var.ansible_topology_path
-      }
-      hosts = ["local"]
-      extra_vars = {
-        ansible_python_interpreter = local.ansible_python_executable
-        testbed_name               = local.testbed_name
-        cloud_topology             = local.topology_name
-        tg_if1_mac                 = data.aws_network_interface.tg_if1.mac_address
-        tg_if2_mac                 = data.aws_network_interface.tg_if2.mac_address
-        dut1_if1_mac               = data.aws_network_interface.sut1_if1.mac_address
-        dut1_if2_mac               = data.aws_network_interface.sut1_if2.mac_address
-        tg_public_ip               = aws_instance.tg.public_ip
-        dut1_public_ip             = aws_instance.sut1.public_ip
-        public_ip_list             = "${aws_instance.tg.public_ip},${aws_instance.sut1.public_ip}"
-      }
+  content = templatefile(
+    "${path.module}/topology-${local.topology_name}.tftpl",
+    {
+      tg_if1_mac     = data.aws_network_interface.tg_if1.mac_address
+      tg_if2_mac     = data.aws_network_interface.tg_if2.mac_address
+      dut1_if1_mac   = data.aws_network_interface.sut1_if1.mac_address
+      dut1_if2_mac   = data.aws_network_interface.sut1_if2.mac_address
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
     }
-  }
+  )
+  filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
 }
+
+resource "local_file" "hosts" {
+  depends_on = [
+    aws_instance.tg,
+    aws_instance.sut1
+  ]
+
+  content = templatefile(
+    "${path.module}/hosts.tftpl",
+    {
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
+    }
+  )
+  filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+}
\ No newline at end of file
index f02586c..b943c3b 100644 (file)
@@ -6,4 +6,3 @@ all:
     sut:
       hosts:
         {{ dut1_public_ip | default() }}
-        {{ dut2_public_ip | default() }}
index ce565ea..c95c8a6 100644 (file)
@@ -414,34 +414,44 @@ resource "null_resource" "deploy_sut2" {
   }
 }
 
-resource "null_resource" "deploy_topology" {
+resource "local_file" "topology_file" {
   depends_on = [
     aws_instance.tg,
     aws_instance.sut1,
     aws_instance.sut2
   ]
 
-  provisioner "ansible" {
-    plays {
-      playbook {
-        file_path = var.ansible_topology_path
-      }
-      hosts = ["local"]
-      extra_vars = {
-        ansible_python_interpreter = local.ansible_python_executable
-        testbed_name               = local.testbed_name
-        cloud_topology             = local.topology_name
-        tg_if1_mac                 = data.aws_network_interface.tg_if1.mac_address
-        tg_if2_mac                 = data.aws_network_interface.tg_if2.mac_address
-        dut1_if1_mac               = data.aws_network_interface.sut1_if1.mac_address
-        dut1_if2_mac               = data.aws_network_interface.sut1_if2.mac_address
-        dut2_if1_mac               = data.aws_network_interface.sut2_if1.mac_address
-        dut2_if2_mac               = data.aws_network_interface.sut2_if2.mac_address
-        tg_public_ip               = aws_instance.tg.public_ip
-        dut1_public_ip             = aws_instance.sut1.public_ip
-        dut2_public_ip             = aws_instance.sut2.public_ip
-        public_ip_list             = "${aws_instance.tg.public_ip},${aws_instance.sut1.public_ip},${aws_instance.sut2.public_ip}"
-      }
+  content = templatefile(
+    "${path.module}/topology-${local.topology_name}.tftpl",
+    {
+      tg_if1_mac     = data.aws_network_interface.tg_if1.mac_address
+      tg_if2_mac     = data.aws_network_interface.tg_if2.mac_address
+      dut1_if1_mac   = data.aws_network_interface.sut1_if1.mac_address
+      dut1_if2_mac   = data.aws_network_interface.sut1_if2.mac_address
+      dut2_if1_mac   = data.aws_network_interface.sut2_if1.mac_address
+      dut2_if2_mac   = data.aws_network_interface.sut2_if2.mac_address
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
+      dut2_public_ip = aws_instance.sut2.public_ip
     }
-  }
+  )
+  filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+  depends_on = [
+    aws_instance.tg,
+    aws_instance.sut1,
+    aws_instance.sut2
+  ]
+
+  content = templatefile(
+    "${path.module}/hosts.tftpl",
+    {
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
+      dut2_public_ip = aws_instance.sut2.public_ip
+    }
+  )
+  filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
 }
\ No newline at end of file
index df6ef9a..dc0ad6a 100644 (file)
@@ -414,34 +414,44 @@ resource "null_resource" "deploy_sut2" {
   }
 }
 
-resource "null_resource" "deploy_topology" {
+resource "local_file" "topology_file" {
   depends_on = [
     aws_instance.tg,
     aws_instance.sut1,
     aws_instance.sut2
   ]
 
-  provisioner "ansible" {
-    plays {
-      playbook {
-        file_path = var.ansible_topology_path
-      }
-      hosts = ["local"]
-      extra_vars = {
-        ansible_python_interpreter = local.ansible_python_executable
-        testbed_name               = local.testbed_name
-        cloud_topology             = local.topology_name
-        tg_if1_mac                 = data.aws_network_interface.tg_if1.mac_address
-        tg_if2_mac                 = data.aws_network_interface.tg_if2.mac_address
-        dut1_if1_mac               = data.aws_network_interface.sut1_if1.mac_address
-        dut1_if2_mac               = data.aws_network_interface.sut1_if2.mac_address
-        dut2_if1_mac               = data.aws_network_interface.sut2_if1.mac_address
-        dut2_if2_mac               = data.aws_network_interface.sut2_if2.mac_address
-        tg_public_ip               = aws_instance.tg.public_ip
-        dut1_public_ip             = aws_instance.sut1.public_ip
-        dut2_public_ip             = aws_instance.sut2.public_ip
-        public_ip_list             = "${aws_instance.tg.public_ip},${aws_instance.sut1.public_ip},${aws_instance.sut2.public_ip}"
-      }
+  content = templatefile(
+    "${path.module}/topology-${local.topology_name}.tftpl",
+    {
+      tg_if1_mac     = data.aws_network_interface.tg_if1.mac_address
+      tg_if2_mac     = data.aws_network_interface.tg_if2.mac_address
+      dut1_if1_mac   = data.aws_network_interface.sut1_if1.mac_address
+      dut1_if2_mac   = data.aws_network_interface.sut1_if2.mac_address
+      dut2_if1_mac   = data.aws_network_interface.sut2_if1.mac_address
+      dut2_if2_mac   = data.aws_network_interface.sut2_if2.mac_address
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
+      dut2_public_ip = aws_instance.sut2.public_ip
     }
-  }
+  )
+  filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+  depends_on = [
+    aws_instance.tg,
+    aws_instance.sut1,
+    aws_instance.sut2
+  ]
+
+  content = templatefile(
+    "${path.module}/hosts.tftpl",
+    {
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
+      dut2_public_ip = aws_instance.sut2.public_ip
+    }
+  )
+  filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
 }
\ No newline at end of file
index c6b10f8..f1bb1b0 100644 (file)
@@ -414,34 +414,44 @@ resource "null_resource" "deploy_sut2" {
   }
 }
 
-resource "null_resource" "deploy_topology" {
+resource "local_file" "topology_file" {
   depends_on = [
     aws_instance.tg,
     aws_instance.sut1,
     aws_instance.sut2
   ]
 
-  provisioner "ansible" {
-    plays {
-      playbook {
-        file_path = var.ansible_topology_path
-      }
-      hosts = ["local"]
-      extra_vars = {
-        ansible_python_interpreter = local.ansible_python_executable
-        testbed_name               = local.testbed_name
-        cloud_topology             = local.topology_name
-        tg_if1_mac                 = data.aws_network_interface.tg_if1.mac_address
-        tg_if2_mac                 = data.aws_network_interface.tg_if2.mac_address
-        dut1_if1_mac               = data.aws_network_interface.sut1_if1.mac_address
-        dut1_if2_mac               = data.aws_network_interface.sut1_if2.mac_address
-        dut2_if1_mac               = data.aws_network_interface.sut2_if1.mac_address
-        dut2_if2_mac               = data.aws_network_interface.sut2_if2.mac_address
-        tg_public_ip               = aws_instance.tg.public_ip
-        dut1_public_ip             = aws_instance.sut1.public_ip
-        dut2_public_ip             = aws_instance.sut2.public_ip
-        public_ip_list             = "${aws_instance.tg.public_ip},${aws_instance.sut1.public_ip},${aws_instance.sut2.public_ip}"
-      }
+  content = templatefile(
+    "${path.module}/topology-${local.topology_name}.tftpl",
+    {
+      tg_if1_mac     = data.aws_network_interface.tg_if1.mac_address
+      tg_if2_mac     = data.aws_network_interface.tg_if2.mac_address
+      dut1_if1_mac   = data.aws_network_interface.sut1_if1.mac_address
+      dut1_if2_mac   = data.aws_network_interface.sut1_if2.mac_address
+      dut2_if1_mac   = data.aws_network_interface.sut2_if1.mac_address
+      dut2_if2_mac   = data.aws_network_interface.sut2_if2.mac_address
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
+      dut2_public_ip = aws_instance.sut2.public_ip
     }
-  }
+  )
+  filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+  depends_on = [
+    aws_instance.tg,
+    aws_instance.sut1,
+    aws_instance.sut2
+  ]
+
+  content = templatefile(
+    "${path.module}/hosts.tftpl",
+    {
+      tg_public_ip   = aws_instance.tg.public_ip
+      dut1_public_ip = aws_instance.sut1.public_ip
+      dut2_public_ip = aws_instance.sut2.public_ip
+    }
+  )
+  filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
 }
\ No newline at end of file