diff --git a/kayobe/cli/commands.py b/kayobe/cli/commands.py
index 9278f28da..b5d59a07b 100644
--- a/kayobe/cli/commands.py
+++ b/kayobe/cli/commands.py
@@ -578,8 +578,6 @@ class OvercloudInventoryDiscover(KayobeAnsibleMixin, VaultMixin, Command):
     * Query the ironic inventory on the seed, and use this to populate kayobe's
       ansible inventory.
     * Allocate IP addresses for all configured networks.
-    * Configure the bifrost service with host variables for provisioning the
-      overcloud hosts.
     * Update the kolla-ansible configuration for the new overcloud hosts.
     """
 
@@ -593,9 +591,7 @@ class OvercloudInventoryDiscover(KayobeAnsibleMixin, VaultMixin, Command):
         # If necessary, allocate IP addresses for the discovered hosts.
         self.run_kayobe_playbook(parsed_args,
                                  "ansible/ip-allocation.yml")
-        # Now populate the Kolla Ansible and Bifrost inventories.
-        self.run_kayobe_playbook(parsed_args,
-                                 "ansible/kolla-bifrost-hostvars.yml")
+        # Now populate the Kolla Ansible inventory.
         self.run_kayobe_playbook(parsed_args, "ansible/kolla-ansible.yml",
                                  tags="config")
 
@@ -652,7 +648,8 @@ class OvercloudHardwareInspect(KayobeAnsibleMixin, VaultMixin, Command):
 
     def take_action(self, parsed_args):
         self.app.LOG.debug("Inspecting overcloud")
-        playbooks = _build_playbook_list("overcloud-hardware-inspect")
+        playbooks = _build_playbook_list("kolla-bifrost-hostvars",
+                                         "overcloud-hardware-inspect")
         self.run_kayobe_playbooks(parsed_args, playbooks)
 
 
@@ -666,7 +663,8 @@ class OvercloudProvision(KayobeAnsibleMixin, VaultMixin, Command):
 
     def take_action(self, parsed_args):
         self.app.LOG.debug("Provisioning overcloud")
-        playbooks = _build_playbook_list("overcloud-provision")
+        playbooks = _build_playbook_list("kolla-bifrost-hostvars",
+                                         "overcloud-provision")
         self.run_kayobe_playbooks(parsed_args, playbooks)
 
 
diff --git a/kayobe/tests/unit/cli/test_commands.py b/kayobe/tests/unit/cli/test_commands.py
index 28cd7cbcc..1d0b3238a 100644
--- a/kayobe/tests/unit/cli/test_commands.py
+++ b/kayobe/tests/unit/cli/test_commands.py
@@ -650,7 +650,7 @@ class TestCase(unittest.TestCase):
                        "run_kayobe_playbooks")
     @mock.patch.object(commands.KollaAnsibleMixin,
                        "run_kolla_ansible_seed")
-    def test_service_deploy(self, mock_kolla_run, mock_run):
+    def test_seed_service_deploy(self, mock_kolla_run, mock_run):
         command = commands.SeedServiceDeploy(TestApp(), [])
         parser = command.get_parser("test")
         parsed_args = parser.parse_args([])
@@ -688,6 +688,95 @@ class TestCase(unittest.TestCase):
         ]
         self.assertEqual(expected_calls, mock_kolla_run.call_args_list)
 
+    @mock.patch.object(commands.KayobeAnsibleMixin,
+                       "run_kayobe_playbook")
+    def test_overcloud_inventory_discover(self, mock_run):
+        command = commands.OvercloudInventoryDiscover(TestApp(), [])
+        parser = command.get_parser("test")
+        parsed_args = parser.parse_args([])
+
+        result = command.run(parsed_args)
+        self.assertEqual(0, result)
+
+        expected_calls = [
+            mock.call(
+                mock.ANY,
+                'ansible/overcloud-inventory-discover.yml',
+            ),
+            mock.call(
+                mock.ANY,
+                'ansible/ip-allocation.yml',
+            ),
+            mock.call(
+                mock.ANY,
+                'ansible/kolla-ansible.yml',
+                tags="config",
+            ),
+        ]
+        self.assertEqual(expected_calls, mock_run.call_args_list)
+
+    @mock.patch.object(commands.KayobeAnsibleMixin,
+                       "run_kayobe_playbooks")
+    def test_overcloud_hardware_inspect(self, mock_run):
+        command = commands.OvercloudHardwareInspect(TestApp(), [])
+        parser = command.get_parser("test")
+        parsed_args = parser.parse_args([])
+
+        result = command.run(parsed_args)
+        self.assertEqual(0, result)
+
+        expected_calls = [
+            mock.call(
+                mock.ANY,
+                [
+                    'ansible/kolla-bifrost-hostvars.yml',
+                    'ansible/overcloud-hardware-inspect.yml',
+                ],
+            ),
+        ]
+        self.assertEqual(expected_calls, mock_run.call_args_list)
+
+    @mock.patch.object(commands.KayobeAnsibleMixin,
+                       "run_kayobe_playbooks")
+    def test_overcloud_provision(self, mock_run):
+        command = commands.OvercloudProvision(TestApp(), [])
+        parser = command.get_parser("test")
+        parsed_args = parser.parse_args([])
+
+        result = command.run(parsed_args)
+        self.assertEqual(0, result)
+
+        expected_calls = [
+            mock.call(
+                mock.ANY,
+                [
+                    'ansible/kolla-bifrost-hostvars.yml',
+                    'ansible/overcloud-provision.yml',
+                ],
+            ),
+        ]
+        self.assertEqual(expected_calls, mock_run.call_args_list)
+
+    @mock.patch.object(commands.KayobeAnsibleMixin,
+                       "run_kayobe_playbooks")
+    def test_overcloud_deprovision(self, mock_run):
+        command = commands.OvercloudDeprovision(TestApp(), [])
+        parser = command.get_parser("test")
+        parsed_args = parser.parse_args([])
+
+        result = command.run(parsed_args)
+        self.assertEqual(0, result)
+
+        expected_calls = [
+            mock.call(
+                mock.ANY,
+                [
+                    'ansible/overcloud-deprovision.yml',
+                ],
+            ),
+        ]
+        self.assertEqual(expected_calls, mock_run.call_args_list)
+
     @mock.patch.object(commands.KayobeAnsibleMixin,
                        "run_kayobe_config_dump")
     @mock.patch.object(commands.KayobeAnsibleMixin,