diff --git a/ansible/roles/kolla-bifrost/templates/bifrost.yml.j2 b/ansible/roles/kolla-bifrost/templates/bifrost.yml.j2
index a4d64dd3f24a992a82b251ccce2c19575799151e..0459df9dbcb32aabcae707e4eb45e45224390cba 100644
--- a/ansible/roles/kolla-bifrost/templates/bifrost.yml.j2
+++ b/ansible/roles/kolla-bifrost/templates/bifrost.yml.j2
@@ -67,6 +67,9 @@ ipa_ramdisk_upstream_checksum_algo: "{{ kolla_bifrost_ipa_ramdisk_checksum_algor
 # Firewalld zone used by Bifrost.
 firewalld_internal_zone: "{{ kolla_bifrost_firewalld_internal_zone }}"
 
+# Disable authentication for the Ironic and Inspector APIs.
+noauth_mode: true
+
 {% if kolla_bifrost_extra_globals %}
 ###############################################################################
 # Extra configuration
diff --git a/dev/tenks-deploy-config-compute.yml b/dev/tenks-deploy-config-compute.yml
index 2ff60889fc240d77b5b799ec0be3d5789571f610..d73ae9800c9d52a6414fd0f8862773516690a875 100644
--- a/dev/tenks-deploy-config-compute.yml
+++ b/dev/tenks-deploy-config-compute.yml
@@ -34,10 +34,18 @@ physnet_mappings:
 deploy_kernel: ipa.kernel
 deploy_ramdisk: ipa.initramfs
 
-# Use a custom socket path to avoid a conflict with the nova_libvirt kolla
-# container which bind mounts /var/run/libvirt.
-libvirt_custom_socket_path: /var/run/libvirt-tenks
+# Use the libvirt daemon deployed by Kolla Ansible in the nova_libvirt
+# container. Tenks will install libvirt client packages.
+libvirt_host_install_daemon: false
 
-# Nested virtualisation is not working well in CI currently. Force the use of
-# QEMU.
-libvirt_vm_engine: "qemu"
+# QEMU may not be installed on the host, so set the path and avoid
+# autodetection.
+libvirt_vm_emulator: "/usr/libexec/qemu-kvm"
+
+# Specify a log path in the kolla_logs Docker volume. It is accessible on the
+# host at the same path.
+libvirt_vm_default_console_log_dir: "/var/log/kolla/tenks"
+
+# Console logs are owned by the ID of the Nova user in the nova_libvirt
+# container.
+libvirt_vm_log_owner: 42436
diff --git a/playbooks/kayobe-overcloud-upgrade-base/run.yml b/playbooks/kayobe-overcloud-upgrade-base/run.yml
index 288a4fd1595dad83bbc6b9a23ba30716eada0b5f..0cf3cb32cf7fd40d237b10ec31862b6060a93d3e 100644
--- a/playbooks/kayobe-overcloud-upgrade-base/run.yml
+++ b/playbooks/kayobe-overcloud-upgrade-base/run.yml
@@ -24,13 +24,6 @@
             cmd: dev/overcloud-deploy.sh &> {{ logs_dir }}/ansible/overcloud-deploy-pre-upgrade
             chdir: "{{ previous_kayobe_src_dir }}"
 
-        - name: Ensure test Tenks cluster is deployed
-          shell:
-            # Pass absolute source directory, since otherwise the `chdir` will
-            # cause this to fail.
-            cmd: dev/tenks-deploy-compute.sh '{{ tenks_src_dir }}' &> {{ logs_dir }}/ansible/tenks-deploy
-            chdir: "{{ previous_kayobe_src_dir }}"
-
       environment:
         KAYOBE_CONFIG_SOURCE_PATH: "{{ previous_kayobe_config_src_dir }}"
 
@@ -61,6 +54,13 @@
     # Perform a smoke test against the previous release.
 
     - block:
+        - name: Ensure test Tenks cluster is deployed
+          shell:
+            # Pass absolute source directory, since otherwise the `chdir` will
+            # cause this to fail.
+            cmd: dev/tenks-deploy-compute.sh '{{ tenks_src_dir }}' &> {{ logs_dir }}/ansible/tenks-deploy
+            chdir: "{{ kayobe_src_dir }}"
+
         - name: Perform testing of the VMs in the overcloud prior to upgrade
           shell:
             cmd: dev/overcloud-test-vm.sh &> {{ logs_dir }}/ansible/overcloud-test-vm-pre-upgrade
diff --git a/releasenotes/notes/centos-8.3-89d07c8f8db5b17b.yaml b/releasenotes/notes/centos-8.3-89d07c8f8db5b17b.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a5883e2d7e1c2931e653c985a699e9e9226add09
--- /dev/null
+++ b/releasenotes/notes/centos-8.3-89d07c8f8db5b17b.yaml
@@ -0,0 +1,4 @@
+---
+fixes:
+  - |
+    Fixes a number of issues with using Kayobe on CentOS 8.3.
diff --git a/requirements.yml b/requirements.yml
index 5dccf5746e7152b8d79ccc452806f82b38cbbfa2..42d28a33b1ef402c79df888c83cfa884aef6eff1 100644
--- a/requirements.yml
+++ b/requirements.yml
@@ -5,7 +5,7 @@
   # There are no versioned releases of this role.
   version: 8438592c84585c86e62ae07e526d3da53629b377
 - src: MichaelRigart.interfaces
-  version: v1.9.0
+  version: v1.9.2
 - src: mrlesmithjr.manage-lvm
   version: v0.1.4
 - src: mrlesmithjr.mdadm
@@ -22,7 +22,7 @@
 - src: stackhpc.grafana-conf
   version: 1.1.0
 - src: stackhpc.libvirt-host
-  version: v1.7.0
+  version: v1.7.1
 - src: stackhpc.libvirt-vm
   version: v1.13.0
 - src: stackhpc.luks
diff --git a/test-requirements.txt b/test-requirements.txt
index ddaa657254d91bf53dae9a9df584f259f321d55f..194c468c7206bcca8f17b34139f0ab004705cb24 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -6,11 +6,11 @@ ansible-lint>=3.0.0,!=4.3.0 # MIT
 bashate>=0.2 # Apache-2.0
 coverage>=4.0 # Apache-2.0
 doc8 # Apache-2.0
-docker<3 # Apache-2.0
+docker # Apache-2.0
 hacking>=3.0.1,<3.1.0 # Apache-2.0
 molecule<3 # MIT
 oslotest>=1.10.0 # Apache-2.0
 # paramiko 2.5.0 makes the kayobe-tox-molecule job fail.
-paramiko<2.5.0
+paramiko
 stestr # Apache-2.0
 yamllint # GPLv3