diff --git a/ansible/roles/horizon/defaults/main.yml b/ansible/roles/horizon/defaults/main.yml
index 645b32ad0a..f6ef87d151 100644
--- a/ansible/roles/horizon/defaults/main.yml
+++ b/ansible/roles/horizon/defaults/main.yml
@@ -36,7 +36,8 @@ horizon_services:
       - "/etc/localtime:/etc/localtime:ro"
       - "kolla_logs:/var/log/kolla/"
       - "/tmp:/tmp"
-
+horizon_keystone_domain_choices:
+  Default: default
 
 ####################
 # Database
diff --git a/ansible/roles/horizon/templates/local_settings.j2 b/ansible/roles/horizon/templates/local_settings.j2
index a7926ad599..75ff669cd7 100644
--- a/ansible/roles/horizon/templates/local_settings.j2
+++ b/ansible/roles/horizon/templates/local_settings.j2
@@ -89,6 +89,22 @@ OPENSTACK_API_VERSIONS = {
 # for login.
 OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = {{ horizon_keystone_multidomain | bool }}
 
+# Set this to True if you want available domains displayed as a dropdown menu
+# on the login screen. It is strongly advised NOT to enable this for public
+# clouds, as advertising enabled domains to unauthenticated customers
+# irresponsibly exposes private information. This should only be used for
+# private clouds where the dashboard sits behind a corporate firewall.
+OPENSTACK_KEYSTONE_DOMAIN_DROPDOWN = {{ 'True' if horizon_keystone_domain_choices|length > 1 else 'False' }}
+
+# If OPENSTACK_KEYSTONE_DOMAIN_DROPDOWN is enabled, this option can be used to
+# set the available domains to choose from. This is a list of pairs whose first
+# value is the domain name and the second is the display name.
+OPENSTACK_KEYSTONE_DOMAIN_CHOICES = (
+{% for key, value in horizon_keystone_domain_choices.items() %}
+    ('{{ key }}', '{{ value }}'),
+{% endfor %}
+)
+
 # Overrides the default domain used when running on single-domain model
 # with Keystone V3. All entities will be created in the default domain.
 # NOTE: This value must be the ID of the default domain, NOT the name.
diff --git a/releasenotes/notes/horizon_keystone_dropdown-6b9b4e5e9a64f979.yaml b/releasenotes/notes/horizon_keystone_dropdown-6b9b4e5e9a64f979.yaml
new file mode 100644
index 0000000000..230bfa928d
--- /dev/null
+++ b/releasenotes/notes/horizon_keystone_dropdown-6b9b4e5e9a64f979.yaml
@@ -0,0 +1,7 @@
+---
+features:
+  - |
+    Added ``horizon_keystone_domain_choices`` hash. It can be used to set the
+    available domains to choose from on the horizon login page. This feature was introduced in
+    pike release.
+    https://docs.openstack.org/horizon/latest/configuration/settings.html#openstack-keystone-domain-choices