From 76b132e25f228918b78812aea0a8d4fe5bf79501 Mon Sep 17 00:00:00 2001 From: pmikus Date: Tue, 12 Dec 2023 12:10:00 +0000 Subject: feat(terraform): Remove ansible dependency - terraform ansible is not supported on aarch Signed-off-by: Peter Mikus Change-Id: I3d1a592b4ed97fe635813dccbf78dc42d14e0fa9 --- .../terraform-aws-3n-c7gn/hosts.tftpl | 9 +++ fdio.infra.terraform/terraform-aws-3n-c7gn/main.tf | 56 ++++++++++------- .../terraform-aws-3n-c7gn/topology-3n-c7gn.tftpl | 73 ++++++++++++++++++++++ 3 files changed, 115 insertions(+), 23 deletions(-) create mode 100644 fdio.infra.terraform/terraform-aws-3n-c7gn/hosts.tftpl create mode 100644 fdio.infra.terraform/terraform-aws-3n-c7gn/topology-3n-c7gn.tftpl (limited to 'fdio.infra.terraform/terraform-aws-3n-c7gn') diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/hosts.tftpl b/fdio.infra.terraform/terraform-aws-3n-c7gn/hosts.tftpl new file mode 100644 index 0000000000..f02586cc99 --- /dev/null +++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/hosts.tftpl @@ -0,0 +1,9 @@ +all: + children: + tg: + hosts: + {{ tg_public_ip }} + sut: + hosts: + {{ dut1_public_ip | default() }} + {{ dut2_public_ip | default() }} diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/main.tf b/fdio.infra.terraform/terraform-aws-3n-c7gn/main.tf index 1c12442dbc..fe443bc96c 100644 --- a/fdio.infra.terraform/terraform-aws-3n-c7gn/main.tf +++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/main.tf @@ -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 diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/topology-3n-c7gn.tftpl b/fdio.infra.terraform/terraform-aws-3n-c7gn/topology-3n-c7gn.tftpl new file mode 100644 index 0000000000..295d457f49 --- /dev/null +++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/topology-3n-c7gn.tftpl @@ -0,0 +1,73 @@ +--- +metadata: + version: 0.1 + schema: + - resources/topology_schemas/3_node_topology.sch.yaml + - resources/topology_schemas/topology.sch.yaml + tags: [hw, 3-node] + +nodes: + TG: + type: TG + subtype: TREX + host: "{{ tg_public_ip }}" + arch: x86_64 + port: 22 + username: testuser + password: Csit1234 + interfaces: + port1: + # tg_instance/p1 - 100GE port1 on ENA NIC. + mac_address: {{ tg_if1_mac }} + pci_address: "0000:00:06.0" + link: link1 + model: Amazon-Nitro-100G + port2: + # tg_instance/p2 - 100GE port2 on ENA NIC. + mac_address: {{ tg_if2_mac }} + pci_address: "0000:00:07.0" + link: link2 + model: Amazon-Nitro-100G + DUT1: + type: DUT + host: "{{ dut1_public_ip }}" + arch: x86_64 + port: 22 + username: testuser + password: Csit1234 + uio_driver: vfio-pci + interfaces: + port1: + # dut1_instance/p1 - 100GE port1 on ENA NIC. + mac_address: {{ dut1_if1_mac }} + pci_address: "0000:00:06.0" + link: link1 + model: Amazon-Nitro-100G + port2: + # dut1_instance/p2 - 100GE port2 on ENA NIC. + mac_address: {{ dut1_if2_mac }} + pci_address: "0000:00:07.0" + link: link21 + model: Amazon-Nitro-100G + DUT2: + type: DUT + host: "{{ dut2_public_ip }}" + arch: x86_64 + port: 22 + username: testuser + password: Csit1234 + uio_driver: vfio-pci + interfaces: + port1: + # dut2_instance/p1 - 100GE port1 on ENA NIC. + mac_address: {{ dut2_if1_mac }} + pci_address: "0000:00:06.0" + link: link21 + model: Amazon-Nitro-100G + port2: + # dut2_instance/p2 - 100GE port1 on ENA NIC. + mac_address: {{ dut2_if2_mac }} + pci_address: "0000:00:07.0" + link: link2 + model: Amazon-Nitro-100G + -- cgit 1.2.3-korg