diff --git a/ansible/group_vars/all/kolla b/ansible/group_vars/all/kolla
index 97a8983435a2e7b6b9f3dbb9b58e6e0acf56a009..b6805d70a309783e057af966cc62a11d63fbde4d 100644
--- a/ansible/group_vars/all/kolla
+++ b/ansible/group_vars/all/kolla
@@ -357,18 +357,18 @@ kolla_enable_designate: "no"
 kolla_enable_elasticsearch: "{{ 'yes' if kolla_enable_central_logging | bool or kolla_enable_freezer | bool or kolla_enable_osprofiler | bool or kolla_enable_skydive | bool or kolla_enable_monasca | bool else 'no' }}"
 kolla_enable_etcd: "no"
 kolla_enable_freezer: "no"
-kolla_enable_glance: "yes"
+kolla_enable_glance: "{{ kolla_enable_openstack_core | bool }}"
 kolla_enable_grafana: "no"
 kolla_enable_gnocchi: "no"
 kolla_enable_haproxy: "yes"
-kolla_enable_heat: "yes"
-kolla_enable_horizon: "yes"
+kolla_enable_heat: "{{ kolla_enable_openstack_core | bool }}"
+kolla_enable_horizon: "{{ kolla_enable_openstack_core | bool }}"
 kolla_enable_influxdb: "{{ 'yes' if kolla_enable_monasca | bool else 'no' }}"
-kolla_enable_ironic: "yes"
+kolla_enable_ironic: "{{ kolla_enable_openstack_core | bool }}"
 kolla_enable_ironic_ipxe: "no"
 kolla_enable_ironic_neutron_agent: "{{ 'yes' if kolla_enable_neutron | bool and kolla_enable_ironic | bool else 'no' }}"
 kolla_enable_kafka: "{{ 'yes' if kolla_enable_monasca | bool else 'no' }}"
-kolla_enable_keystone: "yes"
+kolla_enable_keystone: "{{ kolla_enable_openstack_core | bool }}"
 kolla_enable_kibana: "{{ 'yes' if kolla_enable_central_logging | bool or kolla_enable_monasca | bool  else 'no' }}"
 kolla_enable_magnum: "no"
 kolla_enable_manila: "no"
@@ -378,11 +378,12 @@ kolla_enable_mariabackup: "{{ kolla_enable_xtrabackup | default('no') }}"
 kolla_enable_mariadb: "yes"
 kolla_enable_monasca: "no"
 kolla_enable_murano: "no"
-kolla_enable_neutron: "yes"
+kolla_enable_neutron: "{{ kolla_enable_openstack_core | bool }}"
 kolla_enable_neutron_lbaas: "no"
 kolla_enable_neutron_provider_networks: "no"
-kolla_enable_nova: "yes"
+kolla_enable_nova: "{{ kolla_enable_openstack_core | bool }}"
 kolla_enable_octavia: "no"
+kolla_enable_openstack_core: "yes"
 kolla_enable_osprofiler: "no"
 kolla_enable_prometheus: "no"
 kolla_enable_sahara: "no"
diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml
index 60ab7e4c4ef263d16b234b9b33d39a5c563595b2..db72d2507b8404f8808460b5f32e605c56c6d508 100644
--- a/etc/kayobe/kolla.yml
+++ b/etc/kayobe/kolla.yml
@@ -236,6 +236,7 @@
 #kolla_enable_neutron_vpnaas:
 #kolla_enable_nova_serialconsole_proxy:
 #kolla_enable_octavia:
+#kolla_enable_openstack_core:
 #kolla_enable_osprofiler:
 #kolla_enable_panko:
 #kolla_enable_prometheus:
diff --git a/releasenotes/notes/kolla-enable-openstack-core-ce4866dd388f262e.yaml b/releasenotes/notes/kolla-enable-openstack-core-ce4866dd388f262e.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..494d1b93085ca2253eff42a736058d2cb1d5a26e
--- /dev/null
+++ b/releasenotes/notes/kolla-enable-openstack-core-ce4866dd388f262e.yaml
@@ -0,0 +1,7 @@
+---
+features:
+  - |
+    Adds a new variable, ``kolla_enable_openstack_core``, which can be set a
+    default value for whether the default OpenStack services are enabled. This
+    includes Glance, Heat, Horizon, Ironic, Keystone, Neutron and Nova. It is
+    ``true`` by default.