diff --git a/dev/functions b/dev/functions
index 197de96a5248908252355f51bd9eb5746dddcbef..2a3b0ae489c3b90e3529ded388dcbba73f01df2b 100644
--- a/dev/functions
+++ b/dev/functions
@@ -282,16 +282,6 @@ function seed_deploy {
         run_kayobe seed host configure
     fi
 
-    # Note: This must currently be done before host configure, because host
-    # configure runs kolla-ansible.yml, which validates the presence of the
-    # built deploy images.
-    if is_deploy_image_built_locally; then
-        echo "Building seed deployment images"
-        run_kayobe seed deployment image build
-    else
-        echo "Not building seed deployment images"
-    fi
-
     if [[ ${KAYOBE_SEED_CONTAINER_IMAGE_BUILD} = 1 ]]; then
         echo "Building seed container images"
         run_kayobe seed container image build
@@ -304,6 +294,13 @@ function seed_deploy {
         echo "Deploying containerised seed services"
         run_kayobe seed service deploy
     fi
+
+    if is_deploy_image_built_locally; then
+        echo "Building seed deployment images"
+        run_kayobe seed deployment image build
+    else
+        echo "Not building seed deployment images"
+    fi
 }
 
 function seed_upgrade {
diff --git a/playbooks/kayobe-seed-base/overrides.yml.j2 b/playbooks/kayobe-seed-base/overrides.yml.j2
index b875cd23acdb83e62596acac178d2c50aa3badab..15aa10303ea3636b47951d2c213f533032045bf6 100644
--- a/playbooks/kayobe-seed-base/overrides.yml.j2
+++ b/playbooks/kayobe-seed-base/overrides.yml.j2
@@ -28,3 +28,6 @@ pip_index_url: "http://{{ zuul_site_mirror_fqdn }}/pypi/simple"
 # are using for SSH to be removed. Use a dummy interface.
 aio_bridge_ports:
   - dummy1
+
+# Build seed deployment images (IPA)
+ipa_build_images: true
diff --git a/roles/kayobe-diagnostics/files/get_logs.sh b/roles/kayobe-diagnostics/files/get_logs.sh
index 1b7e1fe73c6120b927d51f947ed2648fa2b94073..c9b644efd7e358c7000447037bc8c4bff1f597be 100644
--- a/roles/kayobe-diagnostics/files/get_logs.sh
+++ b/roles/kayobe-diagnostics/files/get_logs.sh
@@ -89,6 +89,12 @@ copy_logs() {
         docker cp bifrost_deploy:/var/log/mariadb/mariadb.log ${LOG_DIR}/kolla/mariadb/
     fi
 
+    # IPA build logs
+    if [[ -f /opt/kayobe/images/ipa/ipa.stderr ]] || [[ -f /opt/kayobe/images/ipa/ipa.stdout ]]; then
+        mkdir -p ${LOG_DIR}/kayobe
+        cp /opt/kayobe/images/ipa/ipa.stderr /opt/kayobe/images/ipa/ipa.stdout ${LOG_DIR}/kayobe/
+    fi
+
     # Rename files to .txt; this is so that when displayed via
     # logs.openstack.org clicking results in the browser shows the
     # files, rather than trying to send it to another app or make you