diff --git a/tools/airship-in-a-pod/scripts/10_install_minikube.sh b/tools/airship-in-a-pod/scripts/10_install_kind.sh
similarity index 70%
rename from tools/airship-in-a-pod/scripts/10_install_minikube.sh
rename to tools/airship-in-a-pod/scripts/10_install_kind.sh
index da875bee2..067150898 100755
--- a/tools/airship-in-a-pod/scripts/10_install_minikube.sh
+++ b/tools/airship-in-a-pod/scripts/10_install_kind.sh
@@ -14,10 +14,10 @@
 
 set -ex
 
-# Installs minikube and other dependencies required for the scripts to run
+# Installs kind and other dependencies required for the scripts to run
 
 
-MINIKUBE_VERSION="latest"
+KIND_VERSION="v0.11.1"
 
 install_pkg(){
   for i in "$@"; do
@@ -25,11 +25,11 @@ install_pkg(){
   done
 }
 
-# Grab usefull packages needed for minikube and other scripts
+# Grab usefull packages needed for kind and other scripts
 install_pkg curl conntrack make jq
 
-curl -Lo minikube "https://storage.googleapis.com/minikube/releases/$MINIKUBE_VERSION/minikube-linux-amd64" \
-  && chmod +x minikube
+curl -Lo ./kind "https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-linux-amd64" \
+  && chmod +x ./kind
 
 sudo mkdir -p /usr/local/bin/
-sudo install minikube /usr/local/bin/
+sudo mv ./kind /usr/local/bin/
diff --git a/tools/airship-in-a-pod/scripts/11_build_images.sh b/tools/airship-in-a-pod/scripts/11_build_images.sh
index 2b2d2a6af..7c9d94006 100755
--- a/tools/airship-in-a-pod/scripts/11_build_images.sh
+++ b/tools/airship-in-a-pod/scripts/11_build_images.sh
@@ -23,11 +23,15 @@ AIRSHIPCTL_REF=${AIRSHIPCTL_REF:-"master"}
 export AIRSHIPCTL_REF
 # Images that are required by airship-in-a-pod but not built
 PULL_LIST="docker:stable-dind nginx quay.io/metal3-io/sushy-tools quay.io/airshipit/libvirt:aiap-v1"
-
+export PULL_LIST
 
 pushd tools/airship-in-a-pod/ || exit
 
-make -e images artifact-setup base infra-builder runner libvirt
+
+BUILD_LIST="images artifact-setup base infra-builder runner libvirt"
+export BUILD_LIST
+
+make -e ${BUILD_LIST}
 
 for IMAGE in $PULL_LIST; do
     docker pull "$IMAGE"
diff --git a/tools/airship-in-a-pod/scripts/12_start_kind.sh b/tools/airship-in-a-pod/scripts/12_start_kind.sh
new file mode 100755
index 000000000..d97aca0fc
--- /dev/null
+++ b/tools/airship-in-a-pod/scripts/12_start_kind.sh
@@ -0,0 +1,106 @@
+#!/usr/bin/env bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -ex
+
+# This script starts up kind cluster set for dual stack and proxy mode set for ipvs
+
+set +e
+
+create_cluster(){
+# possibly a cluster by name kind exists
+kind delete cluster --name kind
+cat <<EOF | kind create cluster --config -
+kind: Cluster
+apiVersion: kind.x-k8s.io/v1alpha4
+networking:
+  disableDefaultCNI: true # disable kindnet
+  kubeProxyMode: "ipvs"
+  ipFamily: dual
+nodes:
+- role: control-plane
+  extraPortMappings:
+  - containerPort: 30002
+    hostPort: 30002
+    listenAddress: 0.0.0.0 # Optional, defaults to 0.0.0.0
+    protocol: tcp # Optional, defaults to tcp
+EOF
+}
+
+create_cluster
+
+status=$?
+if [[ $status -gt 0 ]]; then
+   echo "Failed to create kind cluster"
+   return -1
+fi
+
+# Give cluster a chance to start up
+sleep 10
+
+
+kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
+
+
+cat <<EOF | kubectl apply -f -
+apiVersion: operator.tigera.io/v1
+kind: Installation
+metadata:
+  name: default
+spec:
+  # Configures Calico networking.
+  calicoNetwork:
+    # Note: The ipPools section cannot be modified post-install.
+    ipPools:
+    - blockSize: 26
+      cidr: 10.244.0.0/16
+      encapsulation: VXLANCrossSubnet
+      natOutgoing: Enabled
+      nodeSelector: all()
+    - blockSize: 116 # must be greater than 115 and < 128
+      cidr: fd00:10:244::/56
+      encapsulation: None # Does not support
+      natOutgoing: Enabled
+      nodeSelector: all()
+    nodeAddressAutodetectionV4:
+      interface: eth0
+    nodeAddressAutodetectionV6:
+      interface: eth0
+
+---
+
+# This section configures the Calico API server.
+apiVersion: operator.tigera.io/v1
+kind: APIServer
+metadata:
+  name: default
+spec: {}
+EOF
+
+# Make a copy of the kubeconfig for the log playbooks
+mkdir -p "$HOME"/.airship
+kind get kubeconfig > "$HOME"/.airship/kubeconfig
+
+# Ensure all of the downloaded images are loaded into kind
+# Redefining the environment variables (as export does not seem to work in Zuul environment)
+
+BUILD_LIST="status-checker artifact-setup base infra-builder runner"
+PULL_LIST="docker:stable-dind nginx quay.io/metal3-io/sushy-tools quay.io/airshipit/libvirt:aiap-v1"
+
+kind load docker-image ${PULL_LIST}
+
+for IMAGE in ${BUILD_LIST}; do
+	kind load docker-image "quay.io/airshipit/aiap-$IMAGE:latest"
+done
+
diff --git a/tools/airship-in-a-pod/scripts/12_start_minikube.sh b/tools/airship-in-a-pod/scripts/12_start_minikube.sh
deleted file mode 100755
index f9a706ade..000000000
--- a/tools/airship-in-a-pod/scripts/12_start_minikube.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env bash
-
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -ex
-
-# This script starts up minikube, and accounts for an issue that sometimes
-# comes up when running minikube for the first time in some environments
-
-
-set +e
-sudo -E minikube start --driver=none
-status=$?
-sudo chown -R "$USER" "$HOME"/.minikube; chmod -R u+wrx "$HOME"/.minikube
-if [[ $status -gt 0 ]]; then
-    # Sometimes minikube fails to start if the directory permissions are not correct
-    sudo -E minikube delete
-    set -e
-    sudo -E minikube start --driver=none
-fi
-
-set -e
-sudo -E minikube status
-
-# Ensure .kube and .minikube have proper ownership
-sudo chown -R "$USER" "$HOME"/.kube "$HOME"/.minikube
-
-# Make a copy of the kubeconfig for the log playbooks
-mkdir -p "$HOME"/.airship
-cp "$HOME"/.kube/config "$HOME"/.airship/kubeconfig
-
-# Give cluster a chance to start up
-sleep 10
\ No newline at end of file
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 26012f2ca..5984b90b8 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -174,9 +174,9 @@
         - ./tools/deployment/01_install_kubectl.sh
         - ./tools/install_kustomize.sh
         - ./tools/airship-in-a-pod/scripts/01_dns_settings.sh
-        - ./tools/airship-in-a-pod/scripts/10_install_minikube.sh
+        - ./tools/airship-in-a-pod/scripts/10_install_kind.sh
         - ./tools/airship-in-a-pod/scripts/11_build_images.sh
-        - ./tools/airship-in-a-pod/scripts/12_start_minikube.sh
+        - ./tools/airship-in-a-pod/scripts/12_start_kind.sh
         - ./tools/airship-in-a-pod/scripts/13_apply_dns.sh
         - ./tools/airship-in-a-pod/scripts/20_apply_aiap.sh
       serve_dir: /srv/images