diff --git a/ansible/group_vars/all/bifrost b/ansible/group_vars/all/bifrost
index 5447b81933287d3e0283609f0fd096108dd40f2e..fe95cc22550840b80cc3e77edf7e66228a7123f2 100644
--- a/ansible/group_vars/all/bifrost
+++ b/ansible/group_vars/all/bifrost
@@ -8,7 +8,7 @@
 kolla_bifrost_source_url: "https://git.openstack.org/openstack/bifrost"
 
 # Version (branch, tag, etc.) of Bifrost source code repository.
-kolla_bifrost_source_version: "stable/rocky"
+kolla_bifrost_source_version: "master"
 
 ###############################################################################
 # Diskimage-builder configuration.
diff --git a/ansible/group_vars/all/ipa b/ansible/group_vars/all/ipa
index e03b0b47be0009f4c393a8371da1fbbc254e02d1..7a473e39c3d039fec97541b15ee18263041cec1f 100644
--- a/ansible/group_vars/all/ipa
+++ b/ansible/group_vars/all/ipa
@@ -11,7 +11,7 @@ ipa_build_images: False
 ipa_build_source_url: "https://git.openstack.org/openstack/ironic-python-agent"
 
 # Version of IPA source repository.
-ipa_build_source_version: "stable/rocky"
+ipa_build_source_version: "master"
 
 # URL of IPA upper constraints file.
 ipa_build_upper_constraints_file_url:
@@ -63,7 +63,7 @@ ipa_build_dib_git_elements: []
 ipa_images_kernel_name: "ipa.vmlinuz"
 
 # URL of Ironic deployment kernel image to download.
-ipa_kernel_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe-stable-rocky.vmlinuz"
+ipa_kernel_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe.vmlinuz"
 
 # URL of checksum of Ironic deployment kernel image.
 ipa_kernel_checksum_url: "{{ ipa_kernel_upstream_url }}.{{ ipa_kernel_checksum_algorithm }}"
@@ -75,7 +75,7 @@ ipa_kernel_checksum_algorithm: "sha256"
 ipa_images_ramdisk_name: "ipa.initramfs"
 
 # URL of Ironic deployment ramdisk image to download.
-ipa_ramdisk_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem-stable-rocky.cpio.gz"
+ipa_ramdisk_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem.cpio.gz"
 
 # URL of checksum of Ironic deployment ramdisk image.
 ipa_ramdisk_checksum_url: "{{ ipa_ramdisk_upstream_url }}.{{ ipa_ramdisk_checksum_algorithm }}"
diff --git a/ansible/group_vars/all/kolla b/ansible/group_vars/all/kolla
index 4e0f83d5c594fde875af92b3fb1b870f04622331..ac65af74794d647b638d9a960e40054a40ff924c 100644
--- a/ansible/group_vars/all/kolla
+++ b/ansible/group_vars/all/kolla
@@ -13,7 +13,7 @@ kolla_source_url: "https://git.openstack.org/openstack/kolla"
 
 # Version (branch, tag, etc.) of Kolla source code repository if type is
 # 'source'.
-kolla_source_version: "stable/rocky"
+kolla_source_version: "master"
 
 # Path to virtualenv in which to install kolla.
 kolla_venv: "{{ virtualenv_path ~ '/kolla' }}"
@@ -35,7 +35,7 @@ kolla_ansible_source_url: "https://git.openstack.org/openstack/kolla-ansible"
 
 # Version (branch, tag, etc.) of Kolla Ansible source code repository if type
 # is 'source'.
-kolla_ansible_source_version: "stable/rocky"
+kolla_ansible_source_version: "master"
 
 # Path to virtualenv in which to install kolla-ansible.
 kolla_ansible_venv: "{{ lookup('env', 'KOLLA_VENV_PATH') | default(lookup('env', 'PWD') ~ '/venvs/kolla-ansible', true) }}"
@@ -71,7 +71,7 @@ kolla_docker_registry_username:
 kolla_docker_registry_password:
 
 # Kolla OpenStack release version. This should be a Docker image tag.
-kolla_openstack_release: "rocky"
+kolla_openstack_release: "master"
 
 # Dict mapping names of sources to their definitions for
 # kolla_install_type=source. See kolla.common.config for details.
@@ -291,8 +291,6 @@ kolla_overcloud_inventory_top_level_group_map:
 kolla_overcloud_inventory_kolla_top_level_groups:
   - "control"
   - "network"
-  - "inner-compute"
-  - "external-compute"
   - "compute"
   - "monitoring"
   - "storage"
@@ -315,7 +313,7 @@ kolla_enable_tls_external: "no"
 kolla_openstack_logging_debug: "False"
 
 # Upper constraints file for installation of Kolla.
-kolla_upper_constraints_file: "https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky"
+kolla_upper_constraints_file: "https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt"
 
 # User account to use for Kolla SSH access.
 kolla_ansible_user: kolla
diff --git a/ansible/roles/kolla-ansible/templates/overcloud-components.j2 b/ansible/roles/kolla-ansible/templates/overcloud-components.j2
index 3ea5275dfb1ae315ea437229c8f5057b667d0421..a3434f329306d448e981187378816f12eaf5dfe8 100644
--- a/ansible/roles/kolla-ansible/templates/overcloud-components.j2
+++ b/ansible/roles/kolla-ansible/templates/overcloud-components.j2
@@ -32,7 +32,6 @@ monitoring
 
 [etcd:children]
 control
-compute
 
 [influxdb:children]
 monitoring
@@ -84,6 +83,13 @@ control
 [qdrouterd:children]
 control
 
+[monasca-agent:children]
+compute
+control
+monitoring
+network
+storage
+
 [monasca:children]
 monitoring
 
@@ -167,6 +173,10 @@ control
 [aodh:children]
 control
 
+[cyborg:children]
+control
+compute
+
 [congress:children]
 control
 
diff --git a/ansible/roles/kolla-ansible/templates/overcloud-services.j2 b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
index 1e1562286d4e21ffdb1ba7c96cc5bd62d8f757e4..c03e30266b245d0b7015177a059426755ea4eb94 100644
--- a/ansible/roles/kolla-ansible/templates/overcloud-services.j2
+++ b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
@@ -15,9 +15,6 @@
 [glance-api:children]
 glance
 
-[glance-registry:children]
-glance
-
 # Nova
 [nova-api:children]
 nova
@@ -73,6 +70,9 @@ neutron
 [neutron-infoblox-ipam-agent:children]
 neutron
 
+[neutron-metering-agent:children]
+neutron
+
 [ironic-neutron-agent:children]
 neutron
 
@@ -195,9 +195,21 @@ murano
 murano
 
 # Monasca
+[monasca-agent-collector:children]
+monasca-agent
+
+[monasca-agent-forwarder:children]
+monasca-agent
+
+[monasca-agent-statsd:children]
+monasca-agent
+
 [monasca-api:children]
 monasca
 
+[monasca-grafana:children]
+monasca
+
 [monasca-log-api:children]
 monasca
 
@@ -277,6 +289,12 @@ solum
 [solum-conductor:children]
 solum
 
+[solum-application-deployment:children]
+solum
+
+[solum-image-builder:children]
+solum
+
 # Mistral
 [mistral-api:children]
 mistral
@@ -287,6 +305,9 @@ mistral
 [mistral-engine:children]
 mistral
 
+[mistral-event-engine:children]
+mistral
+
 # Ceilometer
 [ceilometer-central:children]
 ceilometer
@@ -297,6 +318,9 @@ ceilometer
 [ceilometer-compute:children]
 compute
 
+[ceilometer-ipmi:children]
+compute
+
 # Aodh
 [aodh-api:children]
 aodh
@@ -310,6 +334,16 @@ aodh
 [aodh-notifier:children]
 aodh
 
+# Cyborg
+[cyborg-api:children]
+cyborg
+
+[cyborg-agent:children]
+compute
+
+[cyborg-conductor:children]
+cyborg
+
 # Congress
 [congress-api:children]
 congress
@@ -447,9 +481,6 @@ vitrage
 [vitrage-graph:children]
 vitrage
 
-[vitrage-collector:children]
-vitrage
-
 [vitrage-ml:children]
 vitrage
 
@@ -489,3 +520,6 @@ monitoring
 
 [prometheus-openstack-exporter:children]
 monitoring
+
+[prometheus-elasticsearch-exporter:children]
+elasticsearch
diff --git a/ansible/roles/kolla-ansible/templates/overcloud-top-level.j2 b/ansible/roles/kolla-ansible/templates/overcloud-top-level.j2
index ab736c1b837fa627ceab827018bf6b98ba655804..da8fcd6687725b886b912a4d1566980765c8bc00 100644
--- a/ansible/roles/kolla-ansible/templates/overcloud-top-level.j2
+++ b/ansible/roles/kolla-ansible/templates/overcloud-top-level.j2
@@ -59,7 +59,3 @@ ansible_python_interpreter={{ kolla_ansible_target_venv }}/bin/python
 
 {% endif %}
 {% endfor %}
-
-[compute:children]
-inner-compute
-external-compute
diff --git a/playbooks/kayobe-overcloud-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-base/overrides.yml.j2
index 2d5755227b51a840238f1800708084fbd35fab55..80b90c8b60f57cbfae2b709d8253061f8aa17b9b 100644
--- a/playbooks/kayobe-overcloud-base/overrides.yml.j2
+++ b/playbooks/kayobe-overcloud-base/overrides.yml.j2
@@ -5,7 +5,7 @@ disable_selinux_do_reboot: false
 
 # Use the OpenStack infra's Dockerhub mirror.
 docker_registry_mirrors:
-  - "http://{{ zuul_site_mirror_fqdn }}:8081/registry-1.docker/"
+  - "http://{{ zuul_site_mirror_fqdn }}:8082/"
 
 kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla'].src_dir }}"
 kolla_source_version: "{{ zuul.projects['git.openstack.org/openstack/kolla'].checkout }}"
diff --git a/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2
index bbc149bab16bdd20b044535a2d0d811caff422c0..70c9ed73e2a6fa6ed46e8ea0c77cd9aa75a96b58 100644
--- a/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2
+++ b/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2
@@ -5,7 +5,7 @@ disable_selinux_do_reboot: false
 
 # Use the OpenStack infra's Dockerhub mirror.
 docker_registry_mirrors:
-  - "http://{{ zuul_site_mirror_fqdn }}:8081/registry-1.docker/"
+  - "http://{{ zuul_site_mirror_fqdn }}:8082/"
 
 {% if not is_previous_release | default(false) %}
 kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla'].src_dir }}"
diff --git a/playbooks/kayobe-overcloud-upgrade-base/run.yml b/playbooks/kayobe-overcloud-upgrade-base/run.yml
index 111f563e5d92cb3b46a3f63c8b017245e231d719..b2cc7755d6e79777116493ab7af17cba0c1d8970 100644
--- a/playbooks/kayobe-overcloud-upgrade-base/run.yml
+++ b/playbooks/kayobe-overcloud-upgrade-base/run.yml
@@ -71,13 +71,13 @@
     - block:
         - name: Perform testing of the VMs in the overcloud prior to upgrade
           shell:
-            cmd: dev/overcloud-test.sh > {{ logs_dir }}/ansible/overcloud-test-vm-pre-upgrade
+            cmd: dev/overcloud-test-vm.sh > {{ logs_dir }}/ansible/overcloud-test-vm-pre-upgrade
             chdir: "{{ previous_kayobe_src_dir }}"
 
         - name: Perform testing of the baremetal machines in the overcloud prior to upgrade
           shell:
             cmd: dev/overcloud-test-baremetal.sh > {{ logs_dir }}/ansible/overcloud-test-bm-pre-upgrade
-            chdir: "{{ kayobe_src_dir }}"
+            chdir: "{{ previous_kayobe_src_dir }}"
 
         # Upgrade Kayobe, and use it to perform an upgrade of the control plane.
 
@@ -85,14 +85,6 @@
           shell:
             cmd: "{{ kayobe_src_dir }}/dev/overcloud-upgrade.sh > {{ logs_dir }}/ansible/overcloud-upgrade"
 
-        # FIXME(mgoddard): The nova-compute service does not seem to be correctly
-        # handling the SIGHUP after being upgraded, leading to "In shutdown, no new
-        # events can be scheduled" errors when booting an instance.
-        - name: Workaround for SIGHUP issue - restart nova-compute service
-          shell:
-            cmd: docker restart nova_compute
-          become: true
-
         # Perform a smoke test against the upgraded current release.
 
         - name: Perform testing of VMs in the upgraded overcloud
diff --git a/playbooks/kayobe-seed-base/overrides.yml.j2 b/playbooks/kayobe-seed-base/overrides.yml.j2
index 4212a73fc79d6380cf409c9d3994c18d2b0b9548..2aca231e17b3b08301e3c7e0a5dfd67a5f4b38e9 100644
--- a/playbooks/kayobe-seed-base/overrides.yml.j2
+++ b/playbooks/kayobe-seed-base/overrides.yml.j2
@@ -5,7 +5,7 @@ disable_selinux_do_reboot: false
 
 # Use the OpenStack infra's Dockerhub mirror.
 docker_registry_mirrors:
-  - "http://{{ zuul_site_mirror_fqdn }}:8081/registry-1.docker/"
+  - "http://{{ zuul_site_mirror_fqdn }}:8082/"
 
 kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla'].src_dir }}"
 kolla_source_version: "{{ zuul.projects['git.openstack.org/openstack/kolla'].checkout }}"
diff --git a/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2 b/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2
index a9dd6ea76ffc56439c808d9336c8e47d8d593caf..41e6128f87ff585d7e204e3f607172c41c682eda 100644
--- a/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2
+++ b/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2
@@ -3,6 +3,10 @@
 # Ansible is run directly on the controller.
 disable_selinux_do_reboot: false
 
+# Use the OpenStack infra's Dockerhub mirror.
+docker_registry_mirrors:
+  - "http://{{ zuul_site_mirror_fqdn }}:8082/"
+
 {% if not is_previous_release | default(false) %}
 kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla'].src_dir }}"
 kolla_source_version: "{{ zuul.projects['git.openstack.org/openstack/kolla'].checkout }}"
@@ -18,16 +22,3 @@ overcloud_host_image_workaround_resolv_enabled: false
 # Use the CI infra's PyPI mirror.
 pip_local_mirror: true
 pip_index_url: "http://{{ zuul_site_mirror_fqdn }}/pypi/simple"
-
-{% if previous_release == "pike" %}
-# kayobe-config-dev in queens changed to use overlay by default. Specify
-# devicemapper explicitly to avoid changing.
-docker_storage_driver: devicemapper
-docker_storage_volume_thinpool_size: 45%VG
-
-# NOTE(mgoddard): Use a loopback-mounted LVM volume for docker storage since
-# the overlay driver doesn't work with the ansible template module until
-# ansible 2.4.0, and this is required by bifrost.
-seed_lvm_group_data_disks:
-  - /dev/loop0
-{% endif %}
diff --git a/playbooks/kayobe-seed-upgrade-base/pre.yml b/playbooks/kayobe-seed-upgrade-base/pre.yml
index dc472ab4bcb8fc5048b0e5437465581f76363ead..9d225444fd43438c67a4e38c6f49d04307fb745b 100644
--- a/playbooks/kayobe-seed-upgrade-base/pre.yml
+++ b/playbooks/kayobe-seed-upgrade-base/pre.yml
@@ -61,19 +61,6 @@
         src: bifrost-overrides.yml.j2
         dest: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/kolla/config/bifrost/bifrost.yml"
 
-    - block:
-        # NOTE(mgoddard): Create a loopback device backed by a file for docker
-        # storage.  We do this since the overlay driver doesn't work with the
-        # ansible template module until ansible 2.4.0, and this is required by
-        # bifrost.
-        - name: Ensure a docker storage backing file exists
-          command: truncate -s 20G /tmp/docker-storage
-
-        - name: Ensure the docker storage loopback device is created
-          command: losetup /dev/loop0 /tmp/docker-storage
-          become: true
-      when: previous_release == "pike"
-
     # NOTE(mgoddard): The kayobe dev config by default expects a bridge -
     # breth1 - to exist on the seed with an IP address of 192.168.33.5.
     - name: Ensure all-in-one network bridge interface exists
diff --git a/tox.ini b/tox.ini
index 450fac1210b20ea2ab388b4f20bf7e3c2361154e..043d2533fe6d76c0a3238f59edca34ecae93dcf4 100644
--- a/tox.ini
+++ b/tox.ini
@@ -18,7 +18,7 @@ setenv =
    OS_STDERR_CAPTURE=1
    OS_TEST_TIMEOUT=60
 deps =
-    -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+    -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
     -r{toxinidir}/requirements.txt
     -r{toxinidir}/test-requirements.txt
 commands = stestr run {posargs}
@@ -37,7 +37,7 @@ commands =
 [testenv:venv]
 basepython = python3
 deps =
-    -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+    -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
     -r{toxinidir}/test-requirements.txt
     -r{toxinidir}/doc/requirements.txt
 commands = {posargs}
@@ -59,6 +59,13 @@ commands =
 [testenv:molecule]
 # Molecule only supports python 2.7 and 3.6.
 basepython = python2
+# Use stable/rocky upper-constraints for molecule since pytest 3.10 fails with
+# the following error:
+# AttributeError: 'Config' object has no attribute 'cache'
+deps =
+    -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+    -r{toxinidir}/test-requirements.txt
+    -r{toxinidir}/doc/requirements.txt
 whitelist_externals =
     bash
 commands =
@@ -109,7 +116,7 @@ commands =
 [testenv:docs]
 basepython = python3
 deps =
-    -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+    -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
     -r{toxinidir}/requirements.txt
     -r{toxinidir}/doc/requirements.txt
 commands = sphinx-build -W -b html doc/source doc/build/html
@@ -121,7 +128,7 @@ commands = oslo_debug_helper {posargs}
 [testenv:releasenotes]
 basepython = python3
 deps =
-    -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+    -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
     -r{toxinidir}/requirements.txt
     -r{toxinidir}/doc/requirements.txt
 commands =
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 23fb52e1176e0adec35733f411a8a0b966714560..68a48af7ede0f5822d2a2266300fb8a71ef802a7 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -33,6 +33,9 @@
     pre-run: playbooks/kayobe-tox-molecule/pre.yml
     timeout: 3600
     required-projects:
+      # Use stable/rocky upper-constraints for molecule since pytest 3.10 fails
+      # with the following error:
+      # AttributeError: 'Config' object has no attribute 'cache'
       - name: openstack/requirements
         override-checkout: stable/rocky
     vars:
@@ -59,11 +62,8 @@
       - name: openstack/kayobe
       - name: openstack/kayobe-config-dev
       - name: openstack/kolla
-        override-checkout: stable/rocky
       - name: openstack/kolla-ansible
-        override-checkout: stable/rocky
       - name: openstack/requirements
-        override-checkout: stable/rocky
       - name: openstack/tenks
     irrelevant-files:
       - ^.*\.rst$
@@ -95,15 +95,12 @@
       - name: openstack/kayobe
       - name: openstack/kayobe-config-dev
       - name: openstack/kolla
-        override-checkout: stable/rocky
       - name: openstack/kolla-ansible
-        override-checkout: stable/rocky
       - name: openstack/requirements
-        override-checkout: stable/rocky
       - name: openstack/tenks
     vars:
       # Name of the release to upgrade from.
-      previous_release: queens
+      previous_release: rocky
     irrelevant-files:
       - ^.*\.rst$
       - ^doc/.*
@@ -133,11 +130,8 @@
       - name: openstack/kayobe
       - name: openstack/kayobe-config-dev
       - name: openstack/kolla
-        override-checkout: stable/rocky
       - name: openstack/kolla-ansible
-        override-checkout: stable/rocky
       - name: openstack/requirements
-        override-checkout: stable/rocky
     irrelevant-files:
       - ^.*\.rst$
       - ^doc/.*
@@ -168,14 +162,11 @@
       - name: openstack/kayobe
       - name: openstack/kayobe-config-dev
       - name: openstack/kolla
-        override-checkout: stable/queens
       - name: openstack/kolla-ansible
-        override-checkout: stable/queens
       - name: openstack/requirements
-        override-checkout: stable/queens
     vars:
       # Name of the release to upgrade from.
-      previous_release: pike
+      previous_release: rocky
     irrelevant-files:
       - ^.*\.rst$
       - ^doc/.*