diff --git a/doc/source/user/quickstart.rst b/doc/source/user/quickstart.rst
index ee14729e2b94fa1951e7121d0e23b6e9ea46269a..f0496c0a9c457e06354ee227a96ed3b24ddffedf 100644
--- a/doc/source/user/quickstart.rst
+++ b/doc/source/user/quickstart.rst
@@ -453,6 +453,21 @@ There are a few options that are required to deploy Kolla-Ansible:
   :kolla-ansible-doc:`Services Reference Guide
   <reference/index.html>`.
 
+* Multiple globals files
+
+  For a more granular control, enabling any option from the main
+  ``globals.yml`` file can now be done using multiple yml files. Simply,
+  create a directory called ``globals.d`` under ``/etc/kolla/`` and place
+  all the relevant ``*.yml`` files in there. The ``kolla-ansible`` script
+  will, automatically, add all of them as arguments to the ``ansible-playbook``
+  command.
+
+  An example use case for this would be if an operator wants to enable cinder
+  and all its options, at a later stage than the initial deployment, without
+  tampering with the existing ``globals.yml`` file. That can be achieved, using
+  a separate ``cinder.yml`` file, placed under the ``/etc/kolla/globals.d/``
+  directory and adding all the relevant options in there.
+
 * Virtual environment
 
   It is recommended to use a virtual environment to execute tasks on the remote
diff --git a/releasenotes/notes/add-multiple-globals-files-support-a75bde9f02b7b022.yaml b/releasenotes/notes/add-multiple-globals-files-support-a75bde9f02b7b022.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e90b685b4c3e47940ca8215a5873e39612984118
--- /dev/null
+++ b/releasenotes/notes/add-multiple-globals-files-support-a75bde9f02b7b022.yaml
@@ -0,0 +1,7 @@
+---
+features:
+  - Adds support for multiple globals files.
+    The main ``globals.yml`` file still exists. In addition to that,
+    operators can now create a ``globals.d`` directory (next to
+    ``globals.yml``), where they can place any number of ``*.yml`` files,
+    for example for specific services they want to add.
diff --git a/specs/multiple-globals-files.rst b/specs/multiple-globals-files.rst
new file mode 100644
index 0000000000000000000000000000000000000000..ab9dc8767bd03f2ea9d7280186b9deb164177f8c
--- /dev/null
+++ b/specs/multiple-globals-files.rst
@@ -0,0 +1,88 @@
+..
+ This work is licensed under a Creative Commons Attribution 3.0 Unported
+ License.
+
+ http://creativecommons.org/licenses/by/3.0/legalcode
+
+..
+ This template should be in ReSTructured text. The filename in the git
+ repository should match the launchpad URL, for example a URL of
+ https://blueprints.launchpad.net/kolla/+spec/awesome-thing should be named
+ awesome-thing.rst . Please do not delete any of the sections in this
+ template. If you have nothing to say for a whole section, just write: None
+ For help with syntax, see http://www.sphinx-doc.org/en/stable/rest.html
+ To test out your formatting, see http://www.tele3.cz/jbar/rest/rest.html
+
+======================================
+Add support for multiple globals files
+======================================
+
+https://blueprints.launchpad.net/kolla-ansible/+spec/multiple-globals-files
+
+Adding this feature to the kolla-ansible script, which will make it, automatically,
+read multiple globals files. This would give operators the ability to have
+separate globals files for some services, giving them a bit more granular control,
+without the need to add the ``-e @/path/to/file`` flag. These files will be placed
+under a new ``/etc/kolla/globals.d`` directory and ``kolla-ansible`` will search
+for ``globals.d/*.yml`` files. The main ``globals.yml`` file will still exist
+under ``/etc/kolla``, as usual.
+
+Problem description
+===================
+
+There's no problem, per say, to solve. This feature will basically give operators
+the ability to have separate globals files for some services, giving them a bit
+more granular control, without the need to add the ``-e @/path/to/file`` flag.
+
+Use cases
+---------
+1. Allow a more granular controler over individual service's options
+2. Better file and directory structure
+
+Proposed change
+===============
+
+- Add the capability in the ``tools/kolla-ansible`` script
+  - Check if the ``globals.d`` directory exists
+  - If it is, add its files in the ``CONFIG_OPTS`` variable at the end of the ``tools/kolla-ansible`` script
+
+Security impact
+---------------
+
+None
+
+Performance Impact
+------------------
+
+None
+
+
+Implementation
+==============
+
+Assignee(s)
+-----------
+
+Konstantinos Mouzaitis <kon.mouzakitis@vscaler.com>
+
+Milestones
+----------
+
+Target Milestone for completion:
+  ussuri-10.0.0
+
+Work Items
+----------
+
+- Add the capability in the ``tools/kolla-ansible`` script
+  - Check if the ``globals.d`` directory exists
+  - If it is, add its files in the ``CONFIG_OPTS`` variable at the end of the ``tools/kolla-ansible`` script
+
+Testing
+=======
+Test the new kolla-ansible script when the ``globals.d`` directory exists and
+includes some more yml files, as well as when it doesn't exist.
+
+Documentation Impact
+====================
+``doc/source/user/quickstart.rst`` will need to be updated to include the options discussed in this feature
diff --git a/tools/kolla-ansible b/tools/kolla-ansible
index dfc98cec5d8f03b9b652f875ddef33655e1c944f..fca10ea717ee973762a8dfbe77135484b7e2cc80 100755
--- a/tools/kolla-ansible
+++ b/tools/kolla-ansible
@@ -452,6 +452,8 @@ EOF
         ;;
 esac
 
-CONFIG_OPTS="-e @${CONFIG_DIR}/globals.yml -e @${PASSWORDS_FILE} -e CONFIG_DIR=${CONFIG_DIR}"
+GLOBALS_DIR="${CONFIG_DIR}/globals.d"
+EXTRA_GLOBALS=$(find ${GLOBALS_DIR} -maxdepth 1 -type f -name '*.yml' -printf ' -e @%p')
+CONFIG_OPTS="-e @${CONFIG_DIR}/globals.yml ${EXTRA_GLOBALS} -e @${PASSWORDS_FILE} -e CONFIG_DIR=${CONFIG_DIR}"
 CMD="ansible-playbook -i $INVENTORY $CONFIG_OPTS $EXTRA_OPTS $PLAYBOOK $VERBOSITY"
 process_cmd