diff --git a/README.rst b/README.rst
index dea6f3e7a..76a0f7633 100644
--- a/README.rst
+++ b/README.rst
@@ -46,8 +46,6 @@ Features
   <https://docs.openstack.org/nova/latest/>`_
 * Containerised workloads on bare metal using `OpenStack magnum
   <https://docs.openstack.org/magnum/latest/>`_
-* Big data on bare metal using `OpenStack sahara
-  <https://docs.openstack.org/sahara/latest/>`_
 * Control plane monitoring using `Prometheus <https://prometheus.io/>`__ and
   `Grafana <https://grafana.com/>`__.
 * Log aggregation using `OpenSearch <https://opensearch.org/docs/latest/>`__
diff --git a/ansible/inventory/group_vars/all/kolla b/ansible/inventory/group_vars/all/kolla
index f86f6082a..6b1ea2122 100644
--- a/ansible/inventory/group_vars/all/kolla
+++ b/ansible/inventory/group_vars/all/kolla
@@ -199,8 +199,6 @@ overcloud_container_image_regex_map:
     enabled: "{{ kolla_enable_mistral | bool }}"
   - regex: ^multipathd
     enabled: "{{ kolla_enable_multipathd | bool }}"
-  - regex: ^murano
-    enabled: "{{ kolla_enable_murano | bool }}"
   - regex: "neutron-\\(server\\|metadata-agent\\)"
     enabled: "{{ kolla_enable_neutron | bool }}"
   - regex: "neutron-\\(dhcp\\|l3\\|linuxbridge\\|openvswitch\\)-agent"
@@ -235,14 +233,8 @@ overcloud_container_image_regex_map:
     enabled: "{{ kolla_enable_rabbitmq | bool }}"
   - regex: ^redis
     enabled: "{{ kolla_enable_redis | bool }}"
-  - regex: ^sahara
-    enabled: "{{ kolla_enable_sahara | bool }}"
-  - regex: ^senlin
-    enabled: "{{ kolla_enable_senlin | bool }}"
   - regex: ^skyline
     enabled: "{{ kolla_enable_skyline | bool }}"
-  - regex: ^solum
-    enabled: "{{ kolla_enable_solum | bool }}"
   - regex: ^swift
     enabled: "{{ kolla_enable_swift | bool }}"
   - regex: ^tacker
@@ -253,8 +245,6 @@ overcloud_container_image_regex_map:
     enabled: "{{ kolla_enable_cinder | bool or kolla_enable_ironic | bool }}"
   - regex: ^trove
     enabled: "{{ kolla_enable_trove | bool }}"
-  - regex: ^vitrage
-    enabled: "{{ kolla_enable_vitrage | bool }}"
   - regex: ^watcher
     enabled: "{{ kolla_enable_watcher | bool }}"
   - regex: ^zun
@@ -544,7 +534,6 @@ kolla_enable_manila: "no"
 kolla_enable_masakari: "no"
 kolla_enable_mistral: "no"
 kolla_enable_multipathd: "no"
-kolla_enable_murano: "no"
 kolla_enable_neutron_mlnx: "no"
 kolla_enable_neutron_provider_networks: "no"
 kolla_enable_neutron_sriov: "no"
@@ -560,10 +549,7 @@ kolla_enable_placement: "{{ kolla_enable_nova | bool or kolla_enable_zun | bool
 kolla_enable_prometheus: "no"
 kolla_enable_qdrouterd: "no"
 kolla_enable_redis: "no"
-kolla_enable_sahara: "no"
-kolla_enable_senlin: "no"
 kolla_enable_skyline: "no"
-kolla_enable_solum: "no"
 kolla_enable_swift: "no"
 kolla_enable_tacker: "no"
 kolla_enable_telegraf: "no"
diff --git a/ansible/overcloud-etc-hosts-fixup.yml b/ansible/overcloud-etc-hosts-fixup.yml
index ec592a871..49b0bb3b0 100644
--- a/ansible/overcloud-etc-hosts-fixup.yml
+++ b/ansible/overcloud-etc-hosts-fixup.yml
@@ -30,7 +30,6 @@
   vars:
     rabbitmq_containers:
       - rabbitmq
-      - outward_rabbitmq
   tasks:
     - name: Check whether rabbitmq container is running
       command: docker inspect -f {{ '{{.Id}}' }} {{ item }}
diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml
index d5951c13d..2a5220a14 100644
--- a/ansible/roles/kolla-ansible/defaults/main.yml
+++ b/ansible/roles/kolla-ansible/defaults/main.yml
@@ -224,15 +224,12 @@ kolla_openstack_logging_debug:
 #kolla_enable_magnum:
 #kolla_enable_manila:
 #kolla_enable_mistral:
-#kolla_enable_murano:
 #kolla_enable_multipathd:
 #kolla_enable_neutron_dvr:
 #kolla_enable_neutron_qos:
 #kolla_enable_neutron_agent_ha:
 #kolla_enable_neutron_vpnaas:
 #kolla_enable_prometheus:
-#kolla_enable_sahara:
-#kolla_enable_senlin:
 #kolla_enable_swift:
 #kolla_enable_telegraf:
 #kolla_enable_watcher:
diff --git a/ansible/roles/kolla-ansible/templates/kolla/globals.yml b/ansible/roles/kolla-ansible/templates/kolla/globals.yml
index 5eb591f80..4ac8a9c45 100644
--- a/ansible/roles/kolla-ansible/templates/kolla/globals.yml
+++ b/ansible/roles/kolla-ansible/templates/kolla/globals.yml
@@ -393,11 +393,6 @@ libvirt_enable_sasl: {{ kolla_libvirt_enable_sasl | bool }}
 # URL from which Nova Hyper-V MSI is downloaded
 #nova_msi_url: "https://www.cloudbase.it/downloads/HyperVNovaCompute_Beta.msi"
 
-#############################
-# Horizon - Dashboard Options
-#############################
-#horizon_backend_database: "{% raw %}{{ enable_murano | bool }}{% endraw %}"
-
 #############################
 # Ironic options
 #############################
diff --git a/ansible/roles/kolla-ansible/tests/test-extras.yml b/ansible/roles/kolla-ansible/tests/test-extras.yml
index 338e7548d..607d7945e 100644
--- a/ansible/roles/kolla-ansible/tests/test-extras.yml
+++ b/ansible/roles/kolla-ansible/tests/test-extras.yml
@@ -174,7 +174,6 @@
             kolla_enable_mariadb: True
             kolla_enable_mistral: True
             kolla_enable_multipathd: True
-            kolla_enable_murano: True
             kolla_enable_neutron_agent_ha: True
             kolla_enable_neutron_bgp_dragent: True
             kolla_enable_neutron_dvr: True
@@ -187,10 +186,7 @@
             kolla_enable_opensearch_dashboards: True
             kolla_enable_osprofiler: True
             kolla_enable_prometheus: True
-            kolla_enable_sahara: True
-            kolla_enable_senlin: True
             kolla_enable_skyline: True
-            kolla_enable_solum: True
             kolla_enable_swift: True
             kolla_enable_tacker: True
             kolla_enable_telegraf: True
@@ -293,7 +289,6 @@
               #enable_mariadb: True
               #enable_mistral: True
               #enable_multipathd: True
-              #enable_murano: True
               #enable_neutron_agent_ha: True
               #enable_neutron_bgp_dragent: True
               #enable_neutron_dvr: True
@@ -306,10 +301,7 @@
               #enable_opensearch_dashboards: True
               #enable_osprofiler: True
               #enable_prometheus: True
-              #enable_sahara: True
-              #enable_senlin: True
               #enable_skyline: True
-              #enable_solum: True
               #enable_swift: True
               #enable_tacker: True
               #enable_telegraf: True
diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml
index 952855934..b389e8ebb 100644
--- a/ansible/roles/kolla-openstack/defaults/main.yml
+++ b/ansible/roles/kolla-openstack/defaults/main.yml
@@ -126,10 +126,6 @@ kolla_openstack_custom_config_include_globs_default:
     glob: multipath.conf
   - enabled: '{{ kolla_enable_multipathd | bool }}'
     glob: multipath/**
-  - enabled: '{{ kolla_enable_murano | bool }}'
-    glob: murano.conf
-  - enabled: '{{ kolla_enable_murano | bool }}'
-    glob: murano/**
   - enabled: '{{ kolla_enable_neutron | bool }}'
     glob: neutron.conf
   - enabled: '{{ kolla_enable_neutron | bool }}'
@@ -154,10 +150,6 @@ kolla_openstack_custom_config_include_globs_default:
     glob: placement/**
   - enabled: '{{ kolla_enable_prometheus | bool }}'
     glob: prometheus/**
-  - enabled: '{{ kolla_enable_sahara | bool }}'
-    glob: sahara.conf
-  - enabled: '{{ kolla_enable_sahara | bool }}'
-    glob: sahara/**
   - enabled: '{{ kolla_enable_swift | bool }}'
     glob: swift/**
   - enabled: '{{ kolla_enable_telegraf | bool }}'
@@ -711,16 +703,6 @@ kolla_enable_multipathd: false
 # Free form extra configuration to append to multipath.conf.
 kolla_extra_multipathd:
 
-###############################################################################
-# Murano configuration.
-
-# Whether to enable Murano.
-kolla_enable_murano: false
-
-# Deprecated:
-# Free form extra configuration to append to murano.conf.
-kolla_extra_murano:
-
 ###############################################################################
 # Neutron configuration.
 
@@ -821,16 +803,6 @@ kolla_extra_placement:
 # Whether to enable Prometheus.
 kolla_enable_prometheus: false
 
-###############################################################################
-# Sahara configuration.
-
-# Whether to enable sahara.
-kolla_enable_sahara: false
-
-# Deprecated:
-# Free form extra configuration to append to sahara.conf.
-kolla_extra_sahara:
-
 ###############################################################################
 # Swift configuration.
 
diff --git a/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py b/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py
index e6c0071f8..086841cfe 100644
--- a/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py
+++ b/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py
@@ -44,11 +44,9 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
      'manila',
      'mariadb',
      'masakari',
-     'murano',
      'neutron',
      'nova',
      'prometheus',
-     'sahara',
      'swift'])
 def test_service_config_directory_absent(host, path):
     path = os.path.join('/etc/kolla/config', path)
diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml
index c4f8b701b..bf7710985 100644
--- a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml
+++ b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml
@@ -114,10 +114,6 @@ provisioner:
         kolla_extra_multipathd: |
           [extra-multipath.conf]
           foo=bar
-        kolla_enable_murano: true
-        kolla_extra_murano: |
-          [extra-murano.conf]
-          foo=bar
         kolla_enable_neutron: true
         kolla_extra_neutron: |
           [extra-neutron.conf]
@@ -142,10 +138,6 @@ provisioner:
           [extra-placement.conf]
           foo=bar
         kolla_enable_prometheus: true
-        kolla_enable_sahara: true
-        kolla_extra_sahara: |
-          [extra-sahara.conf]
-          foo=bar
         kolla_enable_swift: true
         kolla_enable_telegraf: true
   lint:
diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/prepare.yml b/ansible/roles/kolla-openstack/molecule/enable-everything/prepare.yml
index 66be34434..3c491fa1e 100644
--- a/ansible/roles/kolla-openstack/molecule/enable-everything/prepare.yml
+++ b/ansible/roles/kolla-openstack/molecule/enable-everything/prepare.yml
@@ -67,7 +67,6 @@
         - keystone.conf
         - magnum.conf
         - manila.conf
-        - murano.conf
         - backup.my.cnf
         - galera.cnf
         - masakari.conf
@@ -75,7 +74,6 @@
         - neutron/ml2_conf.ini
         - nova.conf
         - octavia.conf
-        - sahara.conf
         - placement.conf
 
     - name: Ensure extra YAML configuration files exist
diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py b/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py
index 664100501..4e9a40a22 100644
--- a/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py
+++ b/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py
@@ -43,13 +43,11 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
      'manila.conf',
      'masakari.conf',
      'multipath.conf',
-     'murano.conf',
      'neutron/ml2_conf.ini',
      'neutron.conf',
      'nova.conf',
      'octavia.conf',
      'placement.conf',
-     'sahara.conf',
      'backup.my.cnf'])
 def test_service_ini_file(host, path):
     # TODO(mgoddard): Check more of config file contents.
@@ -77,13 +75,11 @@ def test_service_ini_file(host, path):
      'magnum.conf',
      'manila.conf',
      'masakari.conf',
-     'murano.conf',
      'neutron/ml2_conf.ini',
      'neutron.conf',
      'nova.conf',
      'octavia.conf',
      'placement.conf',
-     'sahara.conf',
      'backup.my.cnf'])
 def test_service_ini_file_extra_confs(host, path):
     # Tests config added via extra config files
diff --git a/ansible/roles/kolla-openstack/templates/kolla/config/murano.conf b/ansible/roles/kolla-openstack/templates/kolla/config/murano.conf
deleted file mode 100644
index effbc2fd2..000000000
--- a/ansible/roles/kolla-openstack/templates/kolla/config/murano.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-{% if kolla_extra_murano %}
-#######################
-# Extra configuration
-#######################
-
-{{ kolla_extra_murano }}
-{% endif %}
diff --git a/ansible/roles/kolla-openstack/templates/kolla/config/sahara.conf b/ansible/roles/kolla-openstack/templates/kolla/config/sahara.conf
deleted file mode 100644
index d850f95ec..000000000
--- a/ansible/roles/kolla-openstack/templates/kolla/config/sahara.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-{% if kolla_extra_sahara %}
-#######################
-# Extra configuration
-#######################
-
-{{ kolla_extra_sahara }}
-{% endif %}
diff --git a/doc/source/configuration/reference/kolla-ansible.rst b/doc/source/configuration/reference/kolla-ansible.rst
index b3e805637..d53ecf419 100644
--- a/doc/source/configuration/reference/kolla-ansible.rst
+++ b/doc/source/configuration/reference/kolla-ansible.rst
@@ -733,8 +733,6 @@ which files are supported.
    ``masakari.conf``               Masakari configuration.
    ``masakari/*``                  Extended masakari configuration.
    ``multipath.conf``              Multipathd configuration.
-   ``murano.conf``                 Murano configuration.
-   ``murano/*``                    Extended murano configuration.
    ``neutron.conf``                Neutron configuration.
    ``neutron/ml2_conf.ini``        Neutron ML2 configuration.
    ``neutron/*``                   Extended neutron configuration.
@@ -746,8 +744,6 @@ which files are supported.
    ``placement.conf``              Placement configuration.
    ``placement/*``                 Extended Placement configuration.
    ``prometheus/*``                Prometheus configuration.
-   ``sahara.conf``                 Sahara configuration.
-   ``sahara/*``                    Extended sahara configuration.
    ``swift/*``                     Extended swift configuration.
    ``telegraf/*``                  Extended Telegraf configuration.
    =============================== =======================================================
diff --git a/releasenotes/notes/drop-murano-040dbcf2e81da7b5.yaml b/releasenotes/notes/drop-murano-040dbcf2e81da7b5.yaml
new file mode 100644
index 000000000..cfcbe9b63
--- /dev/null
+++ b/releasenotes/notes/drop-murano-040dbcf2e81da7b5.yaml
@@ -0,0 +1,4 @@
+---
+upgrade:
+  - |
+    Support for deploying Murano has been dropped.
diff --git a/releasenotes/notes/drop-sahara-b818f90bad92a8dc.yaml b/releasenotes/notes/drop-sahara-b818f90bad92a8dc.yaml
new file mode 100644
index 000000000..ad0f2c6f8
--- /dev/null
+++ b/releasenotes/notes/drop-sahara-b818f90bad92a8dc.yaml
@@ -0,0 +1,4 @@
+---
+upgrade:
+  - |
+    Support for deploying Sahara has been dropped.
diff --git a/releasenotes/notes/drop-senlin-6728bde642846310.yaml b/releasenotes/notes/drop-senlin-6728bde642846310.yaml
new file mode 100644
index 000000000..df082b620
--- /dev/null
+++ b/releasenotes/notes/drop-senlin-6728bde642846310.yaml
@@ -0,0 +1,4 @@
+---
+upgrade:
+  - |
+    Support for deploying Senlin has been dropped.
diff --git a/releasenotes/notes/drop-solum-8815cdc955705123.yaml b/releasenotes/notes/drop-solum-8815cdc955705123.yaml
new file mode 100644
index 000000000..22ac3da0a
--- /dev/null
+++ b/releasenotes/notes/drop-solum-8815cdc955705123.yaml
@@ -0,0 +1,4 @@
+---
+upgrade:
+  - |
+    Support for deploying Solum has been dropped.
diff --git a/releasenotes/notes/drop-vitrage-e94057f4953c191a.yaml b/releasenotes/notes/drop-vitrage-e94057f4953c191a.yaml
new file mode 100644
index 000000000..a6caeb9da
--- /dev/null
+++ b/releasenotes/notes/drop-vitrage-e94057f4953c191a.yaml
@@ -0,0 +1,4 @@
+---
+upgrade:
+  - |
+    Support for deploying Vitrage has been dropped.