From c2c97c36bc816aaea8b49b1eed04cd0f07db8d44 Mon Sep 17 00:00:00 2001
From: Matt Calvert <miff2000@users.noreply.github.com>
Date: Fri, 11 Dec 2020 20:52:51 +0000
Subject: [PATCH] Add in tests for Calico with dual-stack networking

---
 .gitlab-ci/vagrant.yml                             | 5 +++++
 Vagrantfile                                        | 6 ++++++
 tests/files/vagrant_ubuntu18-calico-dual-stack.rb  | 7 +++++++
 tests/files/vagrant_ubuntu18-calico-dual-stack.yml | 8 ++++++++
 4 files changed, 26 insertions(+)
 create mode 100644 tests/files/vagrant_ubuntu18-calico-dual-stack.rb
 create mode 100644 tests/files/vagrant_ubuntu18-calico-dual-stack.yml

diff --git a/.gitlab-ci/vagrant.yml b/.gitlab-ci/vagrant.yml
index 7861dbe3c..445393973 100644
--- a/.gitlab-ci/vagrant.yml
+++ b/.gitlab-ci/vagrant.yml
@@ -38,6 +38,11 @@ molecule_tests:
   after_script:
     - chronic ./tests/scripts/testcases_cleanup.sh
 
+vagrant_ubuntu18-calico-dual-stack:
+  stage: deploy-part2
+  extends: .vagrant
+  when: on_success
+
 vagrant_ubuntu18-flannel:
   stage: deploy-part2
   extends: .vagrant
diff --git a/Vagrantfile b/Vagrantfile
index 066e8920d..d5736d913 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -205,6 +205,12 @@ Vagrant.configure("2") do |config|
       # Disable swap for each vm
       node.vm.provision "shell", inline: "swapoff -a"
 
+      # ubuntu1804 and ubuntu2004 have IPv6 explicitly disabled. This undoes that.
+      if ["ubuntu1804", "ubuntu2004"].include? $os
+        node.vm.provision "shell", inline: "rm -f /etc/modprobe.d/local.conf"
+        node.vm.provision "shell", inline: "sed -i '/net.ipv6.conf.all.disable_ipv6/d' /etc/sysctl.d/99-sysctl.conf /etc/sysctl.conf"
+      end
+
       # Disable firewalld on oraclelinux/redhat vms
       if ["oraclelinux","oraclelinux8","rhel7","rhel8"].include? $os
         node.vm.provision "shell", inline: "systemctl stop firewalld; systemctl disable firewalld"
diff --git a/tests/files/vagrant_ubuntu18-calico-dual-stack.rb b/tests/files/vagrant_ubuntu18-calico-dual-stack.rb
new file mode 100644
index 000000000..f7d7765eb
--- /dev/null
+++ b/tests/files/vagrant_ubuntu18-calico-dual-stack.rb
@@ -0,0 +1,7 @@
+# For CI we are not worried about data persistence across reboot
+$libvirt_volume_cache = "unsafe"
+
+# Checking for box update can trigger API rate limiting
+# https://www.vagrantup.com/docs/vagrant-cloud/request-limits.html
+$box_check_update = false
+$network_plugin = "calico"
diff --git a/tests/files/vagrant_ubuntu18-calico-dual-stack.yml b/tests/files/vagrant_ubuntu18-calico-dual-stack.yml
new file mode 100644
index 000000000..533ebbbba
--- /dev/null
+++ b/tests/files/vagrant_ubuntu18-calico-dual-stack.yml
@@ -0,0 +1,8 @@
+---
+# Kubespray settings
+
+kube_network_plugin: calico
+enable_dual_stack_networks: true
+
+deploy_netchecker: true
+dns_min_replicas: 1
-- 
GitLab