From 09394cf768d58ebb123a53b2b538b6249671e522 Mon Sep 17 00:00:00 2001
From: "Manoj Alva(ma257n)" <ma257n@att.com>
Date: Wed, 27 Oct 2021 11:09:57 +0000
Subject: [PATCH] Support Dualstack IPv6 in AIAP

- Enable infra-build VMs to have valid IPv6 addresses

Closes: #656
DependsOn: I30ef2543d91f574e73a555bf67ab7ec2764a4411
Change-Id: Ibd6ab5c9f7e2ead274d9509c3466484de6918826
---
 .../ansible/playbooks/roles/build-infra/defaults/main.yaml  | 6 ++++++
 .../playbooks/roles/build-infra/templates/air_nat.xml.j2    | 2 ++
 .../playbooks/roles/build-infra/templates/air_prov.xml.j2   | 2 ++
 3 files changed, 10 insertions(+)

diff --git a/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/defaults/main.yaml b/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/defaults/main.yaml
index bc5736c81..2f58ea712 100644
--- a/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/defaults/main.yaml
+++ b/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/defaults/main.yaml
@@ -52,11 +52,17 @@ networks:
     ip:
       address: "10.23.24.1"
       netmask: "255.255.255.0"
+    ipv6:
+      address: "2001:468:181:f200::1"
+      prefix:  "64"
   - name: nat
     bridge: "air_nat"
     ip:
       address: "10.23.25.1"
       netmask: "255.255.255.0"
+    ipv6:
+      address: "2001:468:181:f100::1"
+      prefix:  "64"
   - name: default
     bridge: "default"
     ip:
diff --git a/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/templates/air_nat.xml.j2 b/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/templates/air_nat.xml.j2
index c37863b84..e1e16d1b2 100644
--- a/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/templates/air_nat.xml.j2
+++ b/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/templates/air_nat.xml.j2
@@ -7,4 +7,6 @@
   </forward><bridge name="nat_br" stp="on" delay="0"/>
   <ip address="{{ networks[1].ip.address }}" netmask="{{ networks[1].ip.netmask }}">
   </ip>
+  <ip family="ipv6" address="{{ networks[1].ipv6.address }}" prefix="{{ networks[1].ipv6.prefix }}">
+  </ip>
 </network>
diff --git a/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/templates/air_prov.xml.j2 b/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/templates/air_prov.xml.j2
index 8eb536116..43f9a287e 100644
--- a/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/templates/air_prov.xml.j2
+++ b/tools/airship-in-a-pod/infra-builder/assets/opt/ansible/playbooks/roles/build-infra/templates/air_prov.xml.j2
@@ -4,4 +4,6 @@
   <bridge name="prov_br" stp="on" delay="0"/>
   <ip address="{{ networks[0].ip.address }}" netmask="{{ networks[0].ip.netmask }}">
   </ip>
+  <ip family="ipv6" address="{{ networks[0].ipv6.address }}" prefix="{{ networks[0].ipv6.prefix }}">
+  </ip>
 </network>